top of page

Sending emails using Python

  • Giampaolo
  • 26 gen 2016
  • Tempo di lettura: 1 min

Thanks to the large standard library, Python is the right tool to write a portable script to send emails. The core functionality to encode an email is contained inside the "email" Python module. The conncetion to the smtp is managed by means of the "smtp" module.

from smtplib import SMTP from smtplib import SMTP_SSL

import email import email.mime.application import email.mime.text

We are going to write a small class (called "smtpSender") to take advantage of the Python object oriented programming style. The constructor of the class will be in charge of storing information about the smtp server whereas the "send" method will perform all the actions required to actually send emails. This splitting (constructor / send method) is useful when we want to send multiple email through the same smtp server.

class smtpSender:

def __init__(self, server_addr=None, server_port=None, \ username=None, password=None, \ method='plain'): ... def send(self, from_addr, to_addr, subject='', text='', \ attachments=[]): ...

An instance of this class can be created specifying the smtp server address, server port, username, password and encription method.

if __name__ == "__main__":

# ------------------------------ # Common settings - Example for GMAIL

server_addr = "smtp.gmail.com" server_port = 587 username = "your_email_address@gmail.com" password = "your_password" method = 'TLS'

# ------------------------------ # Test settings

from_addr = "sender@gmail.com" to_addr = ["receiver@blabla.com"]

subj = "Test" message_txt = "Hello!"

# ------------------------------ # Send the message

sender = smtpSender(server_addr, server_port, \

username, password, method) # Just text! sender.send(from_addr, to_addr, subj, message_txt) # With attachment! sender.send(from_addr, to_addr, subj, message_txt, \

['attachment.txt'])

Please, find the complete code in the document enclosed! Any comment is welcomed! :)

Kommentare


Latest posts
Archive
Tags
Follow us
  • Facebook Basic Square
  • Twitter Basic Square
  • Google+ Basic Square

© 2013 by Giampaolo Pagliuca. All rights reserved.

bottom of page