Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

On this page:

Table of Contents

...

Warning

Looking for the documentation on the newest versions of Power Scripts for Jira 8 for Server/Data Center? Click here !

Contents

Table of Contents
excludeSee also

Starting with Power Scripts for Jira 4.0, we've added the ability to use SIL Scripts scripts to process incomig emails. JJUPIN provides a set of specific routines for use withing mail handling scripts that allow you to read the contents of the incoming email and handle any attachments, as described below.incoming emails.

Specific SIL integrations

JJUPIN provides Power Scripts provides a set of specific routines for use withing mail handling scripts that allow enable you to read the contents of the incoming email and handle any attachments, as described below.

Anchor
IncomingEmail
IncomingEmail

Predefined structure: IncomingEmail

NameFieldTypeObs
Incoming Email


from

string []

array Array of email addresses

to

string []

array Array of email addresses

cc

string []

array Array of email addresses

subject

string


body

string

this is the entire Entire body of the message , including any quoted text in case of replied /or forwarded messages

attachmentsdate

string []

array Array containing the names of the attachments; there can be duplicates

...

Filter by label (Content by label)
showLabelsfalse
excerptTypesimple
cqllabel = "mail_handler_routines"

Writing the handler script

There are 2 the following important things to note about the mail handler script:

  1. If the first email address in the "from" field (the sender of the email) belongs to a registered JIRA Jira user, the script will be run as that user (, that is currentUser() will return that user). Otherwise, the script will be run as an anonymous user.
  2. The return value of the script dictates if other mail handlers will be called for the email or not. 
    1. If the script returns true or has no return value, the email is considered as "handled" and subsequent mail handlers will not be called.
    2. If the script returns false or throws an error, the email is considered "not handled" and subsequent mail handlers will be called.

Here is an example of a mail handler equivalent to JIRAJira's built in "Create issue or add comment".

Code Block
IncomingEmail mail = getIncomingEmail();

string issueKey = matchText(mail.subject, "[A-Z][A-Z]+-[0-9]+"); // find an issue key in the subject
if(isNull(issueKey)) {
	// if no issue key found, create a new issue
    string [] fields = {};
    fields += {"reporter", currentUserKey()};
    fields += {"assignee", getUserByEmail(mail.cc[0]).key}; 

    string newIssue = createIssue("TEST", "", "Task", mail.subject, "Minor", mail.body, {}, "", "", 0, fields);
    attachAllFilesFromEmail(newIssue);
    %newIssue%.watchers = getUserKeysFromEmails(mail.cc); 
} else {
	// if issue key found in subject, add a comment
    addComment(issueKey, currentUserKey(), mail.body);
}
Tip

You may might find useful the getUserByEmail and getUserKeysFromEmails routines useful.

Adding the SIL Mail Handler

To add a new SIL Mail Handler, go to Administration → System → :

  1. Go to Administration > System > Incoming Mail and click Add incoming mail handler.

...


  1. Image Added

  2. Fill in the

...

  1. necessary fields:
    • Mail Handler name
    • Incoming server to use

...

    • Delay between running time
    • Select the SIL Mail Handler

...

    Click Next.
  1. In the next screen, select the script to use for the handler and click Add.

...



  1. Image Added

To delete the mail handler, use the standard Jira feature.

That's it!

See also

Mail Handler Routines

Filter by label (Content by label)
showLabelsfalse
showSpacefalse
excerptTypesimple
cqllabel = "mail_handler_routines"