Python: come mandare un e-mail con GMail TLS/SSL

Mi è capitato di dover mandare un e-mail da uno script Python: quale provider utilizzare? Ovviamente GMail!

Per questioni di spam, alcuni server SMTP non permettono di inviare e-mail senza essersi prima autenticati; nel caso di GMail, il protocollo per l’invio di mail non è il semplice SMTP in chiaro, bensì SMTP con autenticazione via TLS/SSL.

Ecco lo script Python che vi permetterà di mandare un’e-mail con GMail tramite il vostro account GMail:

#!/usr/bin/python

import smtplib
import time
import datetime
from email.MIMEMultipart import MIMEMultipart
from email.MIMEBase import MIMEBase
from email.MIMEText import MIMEText
from email import Encoders
import os

gmail_user = "username@gmail.com"
gmail_pwd = "password"

def mail(to, subject, text):
msg = MIMEMultipart()

msg['From'] = gmail_user
msg['To'] = to
msg['Subject'] = subject

msg.attach(MIMEText(text))

mailServer = smtplib.SMTP("smtp.gmail.com", 587)
mailServer.ehlo()
mailServer.starttls()
mailServer.ehlo()
mailServer.login(gmail_user, gmail_pwd)
mailServer.sendmail(gmail_user, to, msg.as_string())
mailServer.close()

file = open('body.txt','r')
document = file.read()
mail("dst_addr@gmail.com",
"Subject",
document,
)

4 thoughts on “Python: come mandare un e-mail con GMail TLS/SSL”

  1. msg[‘From’] = gmail_user
    NameError: name ‘msg’ is not defined

    cioè?

    grazie e pazienza ,sono purtroppo un principiante :)

Leave a Reply