无法发送附件从python的电子邮件?
问题描述:
import smtplib
from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText
from email.MIMEImage import MIMEImage
msg = MIMEMultipart('multipart/related')
fromaddr = '[email protected]'
toaddrs = '[email protected]'
#provide gmail user name and password
username = '[email protected]'
password = 'messifan'
filename = "1.jpg"
f = file(filename)
attachment = MIMEImage(f.read()) # error here
attachment.add_header('Content-Disposition', 'attachment', filename=filename)
.
.
server.sendmail(fromaddr, toaddrs, msg.as_string())
我使用此代码发送电子邮件。我可以使用此脚本附加文本文件(将MIMEImage格式化为MIMEtext)。但不能附加图像。 错误是无法猜到图像MIME子类型无法发送附件从python的电子邮件?
答
有点猜测在这里,但也许尝试在二进制模式下打开文件?
f = file(filename, 'rb')
答
看起来像你对我创建了一个 “文件” 的对象,但你永远不打开它。
如果您有:
f = file(filename)
attachment = MIMEImage(f.read()) # error here
我想你,而不是需要:
fp = open(filename, 'rb')
attachment = MIMEImage(fp.read())
fp.close()
+0
方法“文件”打开文件。 – rafaelvalle 2015-08-27 19:48:03
那问题就迎刃而解了。现在错误在这一行 server.sendmail(fromaddr,toaddrs,msg.as_string()) – 2013-04-23 16:45:28
问题编辑。现在错误在最后一行 – 2013-04-23 16:47:13
我认为(再次不测试,因为我要去),你需要通过toaddrs列表 – Brad 2013-04-23 16:48:36