Inviare email leggendo da un file oggetto, email e contenuto.
import smtplib
from email.mime.text import MIMEText
import emailAccount
'''
Esempio di file emailAccount.py da salvare nella stessa directory di questo
script
popserver = 'poptuoserver'
popport = 995
server = 'smtptuoserver'
porta=465
username='mio@username'
password='lapassword'
mitt='mio@indirizzoemail'
'''
import time
import sys
def leggiFoglioCSV(nomeF):
f=open(nomeF,"r")
m=[]
for linea in f.readlines():
col=linea.split(",")
col = [item for item in col if item not in ['\n']]
m.append(col)
f.close()
return m
def sendEmail2(oggetto,dest,contenuto):
# server SMTP del tuo gestore #porta del server
email=smtplib.SMTP_SSL(emailAccount.server,emailAccount.porta)
email.ehlo()
# il tuo account #la tua password
email.login(emailAccount.username,emailAccount.password)
email.ehlo()
print("Invio")
msg=MIMEText(contenuto,'html','utf-8')
msg['Subject']=oggetto
msg['From']=emailAccount.mitt
msg['To']=dest
email.sendmail(emailAccount.mitt,dest,msg.as_string())
email.quit
def spedisciEmail(nomeLista):
lista=leggiFoglioCSV(nomeLista)
for i in range(len(lista)):
try:
sendEmail2(lista[i][0],lista[i][1],lista[i][2])
print("Email a: ",lista[i][1]," inviata")
except smtplib.SMTPRecipientsRefused:
print("Email a: ",lista[i][1]," non inviata. Indirizzo sbagliato")
'''
Il foglio CSV deve essere composto da tre colonne
oggetto,email destinatario,contenuto dell'email
Puoi fare anche un semplice file di testo scritto con blocco note.
Esempio
oggetto,email@email.email,contenuto del messaggio
oggetto2,email2@email.email, contenuto del messaggio
'''
spedisciEmail(sys.argv[1])
Semplice e funzionale come sempre.
Come si usa:
python script.py nomedelfile.csv
Se ti piace il blog dona, in alto a destra i miei indirizzi criptovalute.