...
Predefined structure: IncomingEmail
Name | Field | Type | Obs |
---|---|---|---|
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 | |
attachments | string [] | array Array containing the names of the attachments; there can be duplicates |
...
Writing the handler script
There are 2 the following important things to note about the mail handler script:
- If the first email address in the "from" field (the sender of the email) belongs to a registered 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.
- The return value of the script dictates if other mail handlers will be called for the email or not.
- If the script returns true or has no return value, the email is considered as "handled" and subsequent mail handlers will not be called.
- 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 Jira'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 → :
- Go to Administration > System > Incoming Mail and click Add incoming mail handler.
...
- Fill in the
...
- necessary fields:
- Mail Handler name
- Incoming server to use
...
- Delay between running time
- Select the SIL Mail Handler
...
- In the next screen, select the script to use for the handler and click Add.
...
To delete the mail handler, use the Jira standard feature.
That's it!