Следующий скрипт отправляет правильно:
import smtplib, argparse
parser = argparse.ArgumentParser(description="fdsafsa")
parser.add_argument('-r', nargs='?', default=False, help='help')
args = parser.parse_args()
foo = 1
baz = 'fdsa'
TEXT = 'This is the message %d%s' %(foo,baz)
message = '\
From: [email protected] \n\
To: %s \n\
Subject: Data saved successfully \n\
%s' %(args.r,TEXT)
s = smtplib.SMTP('localhost')
s.sendmail('[email protected]',args.r,message)
Но этот скрипт не отправляет электронные письма правильно (обратите внимание на for loop
)
import smtplib, argparse
parser = argparse.ArgumentParser(description="fdsafsa")
parser.add_argument('-r', nargs='?', default=False, help='help')
args = parser.parse_args()
for ii in range(2):
foo = 1d
baz = 'fdsa'
TEXT = 'This is the message %d%s' %(foo,baz)
message = '\
From: [email protected] \n\
To: %s \n\
Subject: Data saved successfully \n\
%s' %(args.r,TEXT)
s = smtplib.SMTP('localhost')
s.sendmail('[email protected]',args.r,message)
В последнем примере электронное письмо не содержит ни темы, ни поля отправителя. Вместо этого они появляются в теле.
пример тела:
Кому: [email protected]
Тема: Данные успешно сохранены
Это сообщение 1fdsa
В первом примере в теле сообщения отображается только часть «Это сообщение 1fdsa». Почему модуль smtplib неправильно считывает поля "от", "кому" и "тема" из message
, когда они находятся в for loop
?