import smtplib
from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText
from email.MIMEImage import MIMEImage
msg = MIMEMultipart('multipart/related')
fromaddr = 'from@gmail.com'
toaddrs = 'to@gmail.com'
#provide gmail user name and password
username = 'to@gmail.com'
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子类型
答案 0 :(得分:8)
这里有点猜测,但也许尝试以二进制模式打开文件?
f = file(filename, 'rb')
答案 1 :(得分:6)
尝试
attachment = MIMEImage(f.read(), _subtype="jpeg") # error here
答案 2 :(得分:2)
在我看来,就像你创建了一个“文件”对象,但你从未打开它。
你在哪里:
f = file(filename)
attachment = MIMEImage(f.read()) # error here
我认为你需要:
fp = open(filename, 'rb')
attachment = MIMEImage(fp.read())
fp.close()