Python command: Email

The email commands in Python allow you to send email.

See Python commands for other commands you can use with GainSeeker.

See Email send method, server, TCP port, and SSL settings for GainSeeker email requirements.

 

Contents  [Hide]

 

Commands

Syntax

Example

Description/Remarks

New or changed in GainSeeker version

email.display(to, subject, body, html=False, attachments=None, cc=None, bcc=None)

See examples below.

Displays an interactive email window that is automatically populated by the following parameters:

to - the address(es) to whom this email will be sent. Can be either a string or a list of strings (one string per address).

subject - the subject line of the email. Must be a string.

body - the body of the email, either plain text or HTML. Must be a string.

html - sets the formatting of the email body.
If False (the default), the email body is treated as plain text.
If True, the body is treated as HTML.

attachments - a list of email attachments. Each item in the list must include a valid file path and file name.
Defaults to None.

cc and bcc - the Cc and Bcc address(es) to whom this email will be sent. Can be None (the default), a string, or a list of strings (one string per address).

The end user can interact with the email window to change recipients, subject, body text, etc. The email will not be sent until the user clicks to Send it.

Email will be sent via the built-in SMTP email function or Microsoft Outlook, depending on the System-wide setting Email send method used and the availability of Microsoft Outlook on the workstation that runs this Python script.

This command cannot be used in a Custom Statistic or in a script that is run by GS Console.

The value of error.stoponerror determines what happens if there is an error sending the email. If True (the default), the script will halt and an error message window will be displayed. If False, an error message will be printed to the console and the script will continue to run.

9.1, 9.4

email.from_address

email.from_address = "me@my_company.com"

Gets/Sets the address from which the email will be sent.

When email is sent from Microsoft Outlook, this property is not used. However, best practice is to set the property in case a workstation without Outlook runs this script.

8.9

email.load_defaults()

email.load_defaults()

Uses the email settings from System-wide settings to set email.server, email.port, and email.use_ssl.

Uses the email settings from the currently logged-in User to set email.from_address, email.username, and email.password.

When email is sent from Microsoft Outlook, these properties are not used. However, best practice is to set these properties in case a workstation without Outlook runs this script.

8.9

email.password

email.password = "password123"

email.passwordisencrypted = False

Gets/Sets the password for email authentication.

When email is sent from Microsoft Outlook, this property is not used. However, best practice is to set the property in case a workstation without Outlook runs this script.

8.9

email.passwordisencrypted

email.password = "6C7B8B6D5AB5A" + "03B3B39642D22" + "F949FE9B79DEE" + "FE01B6B7E5A2E"

email.passwordisencrypted = True

Gets/Sets whether the email.password is a strongly encrypted value and should be decrypted before being used for email authentication. This lets you create a script that does not contain a plain-text email password.

This defaults to False (not encrypted). When supplying a strongly encrypted password, set this to True.

You must use the Password Encryption utility to generate the strongly encrypted version of the password.

9.5

email.port

email.port = 587

Gets/Sets the email port number.

Port number must be greater than 0.

When email is sent from Microsoft Outlook, this property is not used. However, best practice is to set the property in case a workstation without Outlook runs this script.

8.9

email.reset()

email.reset()

Resets all email properties for the email object.

All properties are remembered from one sent email to the next unless they are reset or written over.

8.9

email.send(to, subject, body, html=False, attachments=None, cc=None, bcc=None)

See examples below.

Sends email using the following parameters:

to - the address(es) to whom this email will be sent. Can be either a string or a list of strings (one string per address).

subject - the subject line of the email. Must be a string.

body - the body of the email, either plain text or HTML. Must be a string.

html - sets the formatting of the email body.
If False (the default), the email body is treated as plain text.
If True, the body is treated as HTML.

attachments - a list of email attachments. Each item in the list must include a valid file path and file name.
Defaults to None.

cc and bcc - the Cc and Bcc address(es) to whom this email will be sent. Can be None (the default), a string, or a list of strings (one string per address).

The new email is sent immediately without user interaction.

Email will be sent via the built-in SMTP email function or Microsoft Outlook, depending on the System-wide setting Email send method used and the availability of Microsoft Outlook on the workstation that runs this Python script.

The value of error.stoponerror determines what happens if there is an error sending the email. If True (the default), the script will halt and an error message window will be displayed. If False, an error message will be printed to the console and the script will continue to run.

8.9, 9.1, 9.4

email.server

email.server = "smtp.gmail.com"

Gets/Sets the email server.

When email is sent from Microsoft Outlook, this property is not used. However, best practice is to set the property in case a workstation without Outlook runs this script.

8.9

email.use_ssl

email.use_ssl = True

Gets/Sets whether or not to use TLS/SSL (Transport Layer Security / Secure Sockets Layer) to encrypt connections.

Can be set to True (use TLS/SSL) or False (do not use TLS/SSL - the default).

When email is sent from Microsoft Outlook, this property is not used. However, best practice is to set the property in case a workstation without Outlook runs this script.

8.9

email.username

email.username = "me@my_company.com"

Gets/Sets the username for email authentication.

When email is sent from Microsoft Outlook, this property is not used. However, best practice is to set the property in case a workstation without Outlook runs this script.

8.9

Example scripts with default email settings, text body, and no attachments

This sample script uses the email settings from the System-wide settings and from the User or group name.

The message body is text (not HTML) and there are no email attachments.

The end user can interact with the email window to change recipients, subject, body text, etc. The email will not be sent until the user clicks to Send it.

email.load_defaults()
email.display(
"joanne@acme.com", "Daily email", "This is the message")

 

This sample script uses the email settings from the System-wide settings and from the User or group name.

The message body is text (not HTML) and there are no email attachments.

The new email is sent immediately without user interaction.

email.load_defaults()
email.send(
"joanne@acme.com", "Daily email", "This is the message")

Example script with non-default email settings, text body, and no attachments

This sample script does not use the email settings from the System-wide settings or from the User or group name. The message body is text (not HTML) and there are no email attachments.

email.from_address = "me@my_company.com"
email.use_ssl =
True
email.username =
"me@my_company.com"
email.password =
"password123"
email.server =
"smtp.gmail.com"
email.port =
587
email.send(
"joanne@acme.com", "Daily email", "This is the message")

Example script with multiple recipients, html body, and multiple attachments

This sample script uses the email settings from the System-wide settings and from the User or group name. The message body is HTML and there are email attachments.

em_recipientlist = ["joanne@acme.com", "bob@acme.com"]
em_subject =
"Daily Report"
em_body =
"<strong>Please find attached report</strong> and let me know if there are questions."
em_is_html =
True
em_attachments = [file.getuserdoc1() +
"rtf_procedures.pdf", "z:\\employees\\help.docx"]

email.load_defaults()
error.stoponerror =
False
email.send(em_recipientlist, em_subject, em_body, em_is_html, em_attachments)