擅长:python、mysql、java
<p>您使用的示例代码创建了一个多部分的MIME消息。一切都是附件,包括消息体。如果你只想发送一个简单的单一部分的纯文本或HTML消息,你不需要任何MIME的东西。这只会增加复杂性。在示例的sendmail()调用中,可以看到msg.as\u字符串()? 好吧,这只是把你创建的MIME对象转换成文本。如果您首先处理的是文本,那么您可以很容易地自己指定文本。在</p>
<p>下面的函数类似于我编写的脚本中用于邮寄日志文件的代码。它接受纯文本正文并将其转换为预先格式化的HTML(以便在Outlook中更好地工作)。如果您想保持纯文本,只需去掉添加HTML标记的行,并将Content-Type标题更改为“text/plain”</p>
<pre><code>import smtplib
def sendmail(sender, recipient, subject, body, server="localhost"):
"Sends an e-mail to the specified recipient."
body = ("<html><head></head><body><pre>%s</pre></body></html>" %
body.replace("&", "&amp;").replace("<", "&lt;"))
headers = ["From: " + sender,
"Subject: " + subject,
"To: " + recipient,
"MIME-Version: 1.0",
"Content-Type: text/html"]
headers = "\r\n".join(headers)
session = smtplib.SMTP(server)
session.sendmail(sender, recipient, headers + "\r\n\r\n" + body)
session.quit()
</code></pre>