如何解决在python发送的smtp电子邮件中奇怪显示“发件人”字段
我在smtp电子邮件中收到发件人字段的奇怪显示。
发件人:test@gmail.com收件人:test@gmail.com,主题:邮件test@gmail.com 到:
“收件人”字段为空白,但另一个“收件人”收件人,即test1@gmail.com已成功收到电子邮件。 下面是我的代码。
import smtplib
def SendEmailScenario1():
gmail_user = "test@gmail.com"
gmail_password = '******'
sent_from = gmail_user
to = ["test1@gmail.com"]
subject = 'Message'
body = "Hi There! Done1"
email_text = """\
From: %s
To: %s
Subject: %s
%s
""" % (sent_from,",".join(to),subject,body)
try:
server = smtplib.SMTP_SSL('smtp.gmail.com',465)
server.ehlo()
server.login(gmail_user,gmail_password)
server.sendmail(sent_from,to,email_text)
server.close()
print ('Email sent!')
except:
print ('Something went wrong...')
def SendEmailScenario2():
gmail_user = "test@gmail.com"
gmail_password = '******'
sent_from = gmail_user
to = ["test1@gmail.com"]
subject = 'Message'
body = "Hi There! Done 2"
email_text = """\
From: %s
To: %s
Subject: %s
%s
""" % (sent_from,email_text)
server.close()
print ('Email sent!')
except:
print ('Something went wrong...')
SendEmailScenario1()
SendEmailScenario2()
如何在不使用 MIMEText,MIMEMultipart
的情况下将其正常显示解决方法
RFC822 specifies,标头应以'\r\n'
结尾:
field =字段名“:” [field-body] CRLF
此外,标头应由一个空白的'\r\n'
separated from the body:
[正文]与标头之间用空行分隔(即, 行,CRLF之前没有任何内容)
因此,消息的结构应如下:
headers = "From: %s\r\nTo: %s\r\nSubject: %s\r\n\r\n"
email_text = headers + body
另请参见smtplib docs中的示例。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。