【发布时间】:2015-09-26 21:08:11
【问题描述】:
以下脚本正确发送:
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: me@yahoo.com \n\
To: %s \n\
Subject: Data saved successfully \n\
%s' %(args.r,TEXT)
s = smtplib.SMTP('localhost')
s.sendmail('me@yahoo.com',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: me@yahoo.com \n\
To: %s \n\
Subject: Data saved successfully \n\
%s' %(args.r,TEXT)
s = smtplib.SMTP('localhost')
s.sendmail('me@yahoo.com',args.r,message)
在后一个示例中,电子邮件不包含主题或发件人字段。它们反而出现在体内。
示例正文:
来自:me@yahoo.com
致:me@yahoo.com
主题:数据保存成功
这是 1fdsa 的消息
在前面的例子中,只有“这是一条消息 1fdsa”部分出现在正文中。为什么当 message 位于 for loop 中时,smtplib 模块无法正确读取 from、to 和 subject 字段?
【问题讨论】:
标签: python email for-loop smtplib