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,
)
msg[‘From’] = gmail_user
NameError: name ‘msg’ is not defined
cioè?
grazie e pazienza ,sono purtroppo un principiante :)
Sei sicuro di aver eseguito lo statement sopra quello che hai indicato come errore?
msg = MIMEMultipart()
Ma guarda un po´ chi trovo a darmi proprio le informazioni che mi servivano ;)
Grazie mille :D
Internet è proprio piccola allora :)