Versions Compared

Key

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


Info
titleAvailability

This routine is available starting with SIL Engine™ 1.0, changed in 1.1.14 for Jira 4.3.x / 4.4.x and 2.0.7 for Jira 5.x.

excerpt
Table plus
applyColStyleToCelltrue
heading0
columnTypess,s,s,s
multiplefalse
columnAttributesstyle="background:#e5e7ea;font-weight:bold,,style="background:#e5e7ea;font-weight:bold,
enableSortingfalse

Syntax

sendEmail([from], to, [cc], subject, body_or_template, [language]

Starting with katl-commons 2.0.7, the syntax is following:

sendEmail(from, to, cc, subject, body_or_template, language, issue_key, regex_array)

sendEmail(from, to, cc, subject, body_or_template, language, wildcard_path_array)

Or

sendEmail(JEmailMessage)

Description

Package

Alias

Pkg Usage

Description

Excerpt
hiddentrue
Sends an email.

Sends an email. To and  and cc are are string arrays with any of email addresses, users or groups. Email is sent to all the users of the groups.

From is is optional. If missing the email is sent from the default email address configured in Jira. To pass the language specify the 'sender', 'to', 'cc', 'subject', 'body' and finally the 'language', as a string (for instance "en", "fr", "en_US", "ro", and so on). However, this is relevant only if you use templates as they support localization.

For example, an email sent with language "en" will look for templates in the folder called "en", inside the default template directory. If no such template is found, it will use the one in the default directory.

Also, starting with katl-commons-1.1.1, a default template placed in the default directory is mandatory for each template name used in your SIL programs. For example, if you want to use a template "t.tpl" using language "en_US", it is not only necessary to have "t.tpl" in the "en_US" folder, but you have to have a file "t.tpl" in the default directory.

If you don't specify the language parameter and you use templates, by default the messages are sent in the sender defined language. For the users that are Jira users ('to' or 'cc' are user names and not email addresses) the language defined in the user profile(for each user) is used for email sending. For the rest of the users the email is sent using the sender defined language.

Starting with version 4.0, the engine automatically detects HTML or plain text messages.

ParametersParameters

Table plus
applyColStyleToCelltrue
columnTypess,s,s,s
heading0
multiplefalse
enableSortingfalse

Parameter name

Type

Required

Description

from

...

String

...

No

From address

to

...

string []

...

Yes

Recipient list

cc

...

string []

...

No

CC'ed recipient list

subject

...

String

...

Yes

Subject

body_or_template

...

String

...

Yes

Message body, either direct or a template

language

...

String

...

No

Language used to send the email(relevant only if you use templates)

issue_key

...

String

...

No

Issue to extract attachments from

regex_array

...

String []

...

No

Name patterns to match the attachments from the issue

wildcard_path_array

...

String []

...

No

Absolute paths containing wildcards for attaching files from disk

Or

...

Parameter name

Return Type

...

Required

...

Description

JEmailMessage

JEmailMessage

yes

...

...

Alias

For historical reasons, this routine may be named 'sendEmailFrom'.

Starting with version 4.0, 'sendHtmlEmail' was registered as an alias, too (there is no need for sendHtmlEmail anymore)

Example

Examples

Example 1

Code Block
sendEmail("projectmanager", "teamleader1", "Transition executed", currentUser() + " has executed a transition");
// here we have to, cc, subject and body.
// The from and language parameters were omitted.

Example 2

If SendEmailLanguage has the value receiver_language, testJiraUser1 is a Jira user having the defined language French and testJiraUser2 is a Jira user having the defined language German.

Code Block
string [] to = {"testJiraUser1", "testEmail@cprime.com", "testJiraUser2"};
string [] cc = {"testEmail2@cprime.com"};
sendEmail("testFrom@cprime.com", to, cc, "testSubject.tpl", "testBody.tpl");

Result: One email in French will be sent to testJiraUser1, one email in German for testJiraUser2 and one email in the sender defined language for testEmail@cprime.com(as to) and testEmail2@cprime.com(as cc).

...

Is similar with example 2, but here the language parameter is used.
If SendEmailLanguage has the value receiver_language, testJiraUser1 is a Jira user having the defined language French and testJiraUser2 is a Jira user having the defined language German.

Code Block
string [] to = {"testJiraUser1", "testEmail@cprime.com", "testJiraUser2"};
string [] cc = {"testEmail2@cprime.com"};
sendEmail("testFrom@cprime.com", to, cc, "testSubject.tpl", "testBody.tpl", "en_US");

Result: It will be sent one email in English(because of the en_US language parameter).

Example 4

This example will demonstrate the ability to attach files (to the email) selected from the attachments of the issue using regex patterns.
We will assume that the issue has three attachments: attachment1.txt, attachment2.txt and attachment3atxt attachment3.txt (note that this last one does not have a dot to separate the extension).
Now let's see a few examples of regex patterns that will match some of the attachment. Note that we will use key to specify the current issue, but feel free to use any other issue key.

Code Block
sendEmail("santa@cprime.com", {"jira-users"}, {}, "santa_subject.tpl", "santa_letter.tpl", "en_US", key, {"attachment.*"});
//This will match all of the attachments. Since we are using regex patterns, attachment.* will match anything that starts with attachment.

...

Code Block


sendEmail("santa@cprime.com", {"jira-users"}, {}, "santa_subject.tpl", "santa_letter.tpl", "en_US", key, {"attachment.\\.txt"});
//This will match attachment1.txt and attachment2.txt. The first dot will match any character (the 1 and 2). Note that the second dot is escaped using double backslashes and will not match

...

Code Block
 attachment3.txt.

sendEmail("santa@cprime.com", {"jira-users"}, {}, "santa_subject.tpl", "santa_letter.tpl", "en_US", key, {"attachment1\\.txt", "attachment3atxt"});
//This will match attachment1.txt and

...

note
 attachment3.txt.

Don't forget to use double backslashes when escaping special characters in regex patterns.

Example 5

You can also attach files directly from disk by specifying absolute paths. Note that you can also use * (anything) and ? (any single char) as wildcards.

Code Block
sendEmail("santa@cprime.com", {"jira-users"}, {}, "santa_subject.tpl", "santa_letter.tpl", {"C:/gifts/jira-users*.gift"}); 

Example 6

...

You can also use the JEmailMessage structure type when sending an email. This option can make the code a little cleaner.

Code Block
JEmailMessage email;
email.to = {"testJiraUser1", "testEmail@cprime.com", "testJiraUser2"};
email.subject = "Email to Santa";
email.message = "Dear Santa, I want a train.";

sendEmail(email);

Here is the same example that includes adding attachments to the email. This requires the use of the the JEmailAttachment  structure structure type.

Code Block
JEmailMessage email;
email.to = {"testJiraUser1", "testEmail@cprime.com", "testJiraUser2"};
email.subject = "Email to Santa";
email.message = "Dear Santa, I want a train.";


for(string a in attach) {   
    JEmailAttachment att;
    att.name = a;
    att.file = getAttachmentPath(key, a);
    email.attachments += att;
}

sendEmail(email);

Notes

Note

If you would like to use templates for emails, see the Mail configuration page, as well as detailed explanations linked our template engine: SIL™ Template language. Specifically, read Email Templates WIP page.

Note

 In order for the HTML to be rendered all right, it needs to be written right (using the <html> and <body> tags).

See also

Filter by label (Content by label)
showLabelsfalse
max25
showSpacefalse
cqllabel = "smtpsystem_support"routines" and space = currentSpace ( )
labelssmtparray_supportroutines