Buonasera a tutti,
sono nuovo nella programmazione con python ho provato a sviluppare un programma che legge un file xls e invia le email per ogni riga letta. Il programma funziona bene quando nel campo BODY riporto quanto segue:
BODY = string.join([
'To: %s' % TO,
'From: %s' % gmail_sender,
'Subject:%s' % SUBJECT,
'',
'Ciao',
'Il dato è stato inviato correttamente' ], "\r\n")
try:
server.sendmail(gmail_sender, [TO], BODY)
print 'email sent'
except:
print 'error sending mail'
Mentre se nel capo BODY riporto delle variabili il programma non invia la mail e riporta il msg "error sending mail".
Come riporto di seguito:
BODY = string.join([
'To: %s' % TO,
'From: %s' % gmail_sender,
'Subject:%s' % SUBJECT,
'',
'Ciao',
[color=#FF0040]'Il prodotto indicato :"%s" ' % prod,
'riporta la seguente data: %s ' % data[/color]
], "\r\n")
try:
server.sendmail(gmail_sender, [TO], BODY)
print 'email sent'
except:
print 'error sending mail'
Per completezza riporto il codice completo:
import xlrd
import smtplib
import time
import string
path = "C://Users/r/Documents/D/r//aperte_agosto.xls"
wb = xlrd.open_workbook(path)
sh = wb.sheet_by_index(1)
for row in sh.get_rows():
erogatore = row[4].value
link = row[2].value + " " + row[3].value
prod = row[2].value
data = row[3].value
email = row[6].value
print (erogatore)
print (link)
print (email)
if email != ' ':
TO = 'xxxxx@gmail.com'
SUBJECT = 'Oggetto email %s' % erog
TEXT = 'Here is the message %s %s' % (link, email)
#TEXT = 'Buongiorno..'
TEXT1 = email
gmail_sender = 'yyyyyyyyyy@gmail.com'
gmail_passwd = 'xxxxxxxxxxx'
print (TEXT)
print (TEXT1)
server = smtplib.SMTP('smtp.gmail.com', 587)
server.ehlo()
server.starttls()
server.ehlo()
server.login(gmail_sender, gmail_passwd)
BODY = string.join([
'To: %s' % TO,
'From: %s' % gmail_sender,
'Subject:%s' % SUBJECT,
'',
'Ciao',
'Il prodotto indicato :"%s" ' % prod,
'riporta la seguente data: %s ' % data
], "\r\n")
try:
server.sendmail(gmail_sender, [TO], BODY)
print 'email sent'
except:
print 'error sending mail'
time.sleep(5)
server.quit()
Ringrazio in anticipo per la risposta.
a presto grazie