我编写了一个脚本,将消息写入文本文件并将其作为电子邮件发送。
一切都很顺利,除了电子邮件最终似乎都在一行中。
我添加换行符\n
它适用于文本文件,但不适用于电子邮件。
您知道可能的原因是什么吗?
这是我的代码:
import smtplib, sys
import traceback
def send_error(sender, recipient, headers, body):
SMTP_SERVER = 'smtp.gmail.com'
SMTP_PORT = 587
session = smtplib.SMTP('smtp.gmail.com', 587)
session.ehlo()
session.starttls()
session.ehlo
session.login(sender, 'my password')
send_it = session.sendmail(sender, recipient, headers + "\r\n\r\n" + body)
session.quit()
return send_it
SMTP_SERVER = 'smtp.gmail.com'
SMTP_PORT = 587
sender = '[email protected] /cdn-cgi/l/email-protection'
recipient = '[email protected] /cdn-cgi/l/email-protection'
subject = 'report'
body = "Dear Student, \n Please send your report\n Thank you for your attention"
open('student.txt', 'w').write(body)
headers = ["From: " + sender,
"Subject: " + subject,
"To: " + recipient,
"MIME-Version: 1.0",
"Content-Type: text/html"]
headers = "\r\n".join(headers)
send_error(sender, recipient, headers, body)
不幸的是,对于我们所有人来说,并不是每种类型的程序或应用程序都使用与 python 相同的标准化。
看着你的问题我注意到你的标题是:"Content-Type: text/html"
这意味着您需要为换行使用 HTML 样式标记,这些标记称为换行符。<br>
您的文字应该是:
"Dear Student, <br> Please send your report<br> Thank you for your attention"
如果您想使用字符类型换行符,则必须将标题更改为:"Content-Type: text/plain"
您仍然需要从单个更改换行符\n
到双\r\n
用于电子邮件。
您的文字将是:
"Dear Student, \r\n Please send your report\r\n Thank you for your attention"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)