domenica 5 aprile 2020

PYTHON - EMAIL SENDER CON FOGLIO CSV

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.

Nessun commento:

Posta un commento