Skip to main content
Version: 8.1

system.net.sendEmail

This function is used in Python Scripting.

Description​

Sends an email through the given SMTP server. Note that this email is relayed first through the Gateway; the Client host machine doesn't need network access to the SMTP server.

Note that you can use this function to send emails as text messages. Most phone service providers offer a domain that can be used to convert emails into text messages. For example: 1234567890@phone.domain.com. Contact your cell carrier for details.

New in 8.1.22
Ignition now supports more attachment file formats with associated MIME type mappings, including `.ics`, `.ifb`, `.otf`, and `.wav`. Additional or modified mappings may be specified in `\webserver\webdefault.xml`:
Example
<!-- Add <mime-mapping> blocks like the one below or modify default mappings -->
<!-- Map the file extension 'pwn' to the specified mime-type: -->
<mime-mapping>
<extension>pwn</extension>
<mime-type>application/vnd.3m.post-it-notes</mime-type>
</mime-mapping>

Client Permission Restrictions​

This scripting function has no Client Permission restrictions.

Syntax​

tip

This function accepts keyword arguments.

system.net. sendEmail( smtp, fromAddr, [ subject ] , [ body ] , [ html ] , to, [ attachmentNames ] , [ attachmentData ] , [ timeout ] , [ username ] , [ password ] , [ priority ] , [ smtpProfile ] , [ cc ] , [ bcc ] , [ retries ], [replyTo] )

Parameters​

TypeParameterDescription
StringsmtpThe address of an SMTP server to send the email through, like "mail.example.com". A port can be specified, like "mail.example.com:25". SSL can also be forced, like "mail.example.com:25:tls".
StringfromAddrAn email address to have the email come from.
StringsubjectThe subject line for the email. [optional]
StringbodyThe body text of the email. [optional]
BooleanhtmlA flag indicating whether or not to send the email as an HTML email. Will auto-detect if omitted. [optional]
List[String]toA list of email addresses to send to. [optional]
List[String]attachmentNamesA list of attachment names. Attachment names must have the correct extension for the file type or an error will occur.[optional]
List[Byte]attachmentDataA list of attachment data, in binary format.[optional]
IntegertimeoutA timeout for the email, specified in milliseconds. Defaults to 300,000 milliseconds (5 minutes). [optional]
StringusernameIf specified, will be used to authenticate with the SMTP host. [optional]
StringpasswordIf specified, will be used to authenticate with the SMTP host. [optional]
StringpriorityPriority for the message, from "1" to "5", with "1" being highest priority. Defaults to "3" (normal) priority. [optional]
StringsmtpProfileIf specified, the named SMTP profile defined in the Gateway will be used. If this keyword is present, the smtp, username, and password keywords will be ignored. [optional]
List[String]ccA list of email addresses to carbon copy. Only available if a smtpProfile is used. [optional]
List[String]bccA list of email addresses to blind carbon copy. Only available if a smtpProfile is used. [optional]
IntegerretriesThe number of additional times to retry sending on failure. Defaults to 0. Only available if a smtpProfile is used. [optional]
List[String]replyToAn optional list of addresses to have the recipients reply to. If omitted, this defaults to the from address. [optional]

Returns​

Nothing

Scope​

Gateway, Vision Client, Perspective Session

Code Examples​

Example #1
# This code would send a simple plain-text email to a single recipient, with no attachments
body = "Hello, this is an email."
recipients = ["bobsmith@mycompany.com"]
system.net.sendEmail("mail.mycompany.com",
"myemail@mycompany.com", "Here is the email!", body, 0, recipients)
Example #2
# This code would send an HTML-formatted email to multiple recipients (including
# cellphones) with no attachments
body = "<HTML><BODY><H1>This is a big header</H1>"
body += "And this text is <font color='red'>red</font></BODY></HTML>"
recipients = ["bobsmith@mycompany.com", "1235558383@vtext.com", "sally@acme.org", "1235557272@vtext.com"]
myuser = "mycompany"
mypass = "1234"
system.net.sendEmail(smtp="mail.mycompany.com", fromAddr="myemail@mycompany.com",
subject="Here is the email!", body=body, html=1, to=recipients, username=myuser, password=mypass)
Example #3
# This code ask the user for an attachment file and attaches the file.
filePath = system.file.openFile()
if filePath != None:
# This gets the filename without the C:\folder stuff
fileName = filePath.split("\\")[-1]
fileData = system.file.readFileAsBytes(filePath)
smtp = "mail.mycompany.com"
sender = "myemail@mycompany.com"
subject = "Here is the file you requested"
body = "Hello, this is an email."
recipients = ["bobsmith@mycompany.com"]
system.net.sendEmail(smtp, sender, subject, body, 0, recipients, [fileName], [fileData])
Example #4
# This code would send an HTML-formatted email to multiple recipients, including a cc, with no attachments,
# using an smtp server defined in the Gateway
body = "<HTML><BODY><H1>This is a big header</H1>"
body += "And this text is <font color='red'>red</font></BODY></HTML>"
recipients = ["bobsmith@mycompany.com", "1235558383@vtext.com", "sally@acme.org", "1235557272@vtext.com"]
cc_recipients = ["annejones@mycompany.com"]
smtp_server = "mySmtpServer"
system.net.sendEmail(smtpProfile=smtp_server, fromAddr="myemail@mycompany.com", subject="Here is the email!", body=body, html=1, to=recipients, cc=cc_recipients)