Sending emails from Python
To make it more easy and coherent to send emails from Python, we have
created a small wrapper around the standard Python smtplib module. This
wrapper is called SendEmail
and is located can be imported into
your Python script by using the following code:
from pyprediktorutilities.send_email import SendEmail
You’ll need an SMTP server to send emails. If you don’t have a specified server in your project (e.g. from the client), you can use the generic outbound server you’ll find by searching for “SMTP” in Keeper Security.
Note
If you don’t have a specified server in your project (e.g. from the client), you can use the generic outbound server you’ll find by searching for “SMTP” in Keeper Security. The SMTP server requires authentication. The username and password can be found in the Keeper Security.
You’ll instantiate the SendEmail
class by using the following
code:
email = SendEmail(smtp_server, smtp_port, smtp_username, smtp_password)
The only function in the SendEmail
class is the send_email()
function. This function takes the following arguments:
from_email - The email address of the sender
recipients - A list of email addresses of the recipients
subject - The subject of the email
body - The message of the email
files - A list of file paths to the attachments
The function raises an exception if the email could not be sent and will log the results if you have defined a logger in your script.
Putting it all together, you’ll have the following code:
from pyprediktorutilities.send_email import SendEmail
email = SendEmail(smtp_server, smtp_port, smtp_username, smtp_password)
email.send_email(
"no-reply@nowhere.com",
["someone@somewhere.com"],
subject, body, files)
Note
If you combine this with the template engine, you can send emails with HTML content.