【发布时间】:2014-11-09 02:22:19
【问题描述】:
我正在测试 Python,学习如何使用它。
最近我一直在测试使用 SMTP 发送电子邮件的不同方法,无论是否带有附件。
到目前为止,在阅读了 Stackoverflow 上的 Python 文档和其他主题之后,我得到了我需要的东西,现在可以发送带附件的电子邮件了,耶!
我偶然发现了这个页面,http://www.tutorialspoint.com/python/python_sending_email.htm,它为我提供了它的外观,另一种附加文件的方式。
我之前在一个脚本中使用过这个,我有 4 个文件要附加(希望我正确插入代码):
for f in attach:
part = MIMEBase('application', 'octet-stream')
part.set_payload(open(f, 'rb').read())
Encoders.encode_base64(part)
part.add_header('Content-Disposition','attachment; filename="%s"' % os.path.basename(f))
msg.attach(part)
但是上面发布的教程使用了不同的方式,我尝试了它,因为为什么不呢,只需复制粘贴并输入我的电子邮件,SMTP 只是为了查看它的运行情况,然后尝试更改。但是,最后一段代码:
message = part1 + part2 + part3
.. 不起作用。我的 SMTP 拒绝说 [ERNO10053]。只发送一份就可以了。
是否有更熟悉 Python 的人向我解释一下使用边界的含义?我可以看到它是“--”,后跟一个唯一标记。但我真的不明白你为什么需要它们,以及这个脚本到底发生了什么。
我是新手。
干杯!
【问题讨论】:
-
所以看看你的 smtp 的服务器错误 #10053 是什么。
-
这是个好主意,会做的。
-
我认为您正在寻找有关MIME 的文档(并且应该这样标记问题)。
-
看起来像服务器端阻塞。它可能是由邮件服务器防病毒引起的。或者服务器拒绝了某种类型的文件。尝试使用不同类型的文件(.doc、.jpg 等)。
-
我尝试更改为不同的文件。如果我只发送包含“编码内容”的第 3 部分,它适用于任何文件。但是当我匹配教程中提到的三个部分时,我得到了那个错误。而且我真的不明白“边界,标记”的东西。
标签: python email python-2.7 mime