Inviare email con Python

Inviare email con Python

Python, come molti altri linguaggi, include librerie e classi per l'invio di email tramite protocollo SMTP.

Il modulo si chiama smtplib, ed è molto semplice da usare.

Quella che useremo noi è l'oggetto integrata SMTP, il cui costruttore richiede:

  • host -> l'host del server SMTP
  • port -> la porta di ascolto del server STMP
  • local_hostname -> se il server SMTP gira in locale

Poi useremo la funzione sendemail, che come al solito necessità di un sender, un receivers e un message.

Vediamo un esempio:

import smtplib

sender = 'from@fromdomain.com'
receivers = ['to@todomain.com']

message = """From: From Person
To: To Person
Subject: SMTP e-mail test

This is a test e-mail message.
"""

try:
   smtpObj = smtplib.SMTP('localhost')
   smtpObj.sendmail(sender, receivers, message)         
   print "Successfully sent email"
except SMTPException:
   print "Error: unable to send email"

Questo un esempio con testo in formato semplice.

Se invece volessimo mandare il testo in formato HTML, basterà modificare l'heade specificando il MIME type:

message = """From: From Person <from@fromdomain.com>
To: To Person <to@todomain.com>
MIME-Version: 1.0
Content-type: text/html
Subject: SMTP HTML e-mail test

This is an e-mail message to be sent in HTML format

<b>This is HTML message.</b>
<h1>This is headline.</h1>
"""

Per il resto il codice è uguale.

Ciao!