无法从python发送带附件的电子邮件?

ope*_*guy 1 python smtp python-2.7

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())   
Run Code Online (Sandbox Code Playgroud)

我正在使用此代码发送电子邮件.我可以使用这个脚本附加文本文件.(将MIMEImage整理到MIMEtext).但无法附加图像.错误是无法猜测图像mime子类型

Bra*_*rad 8

这里有点猜测,但也许尝试以二进制模式打开文件?

f = file(filename, 'rb')
Run Code Online (Sandbox Code Playgroud)


raf*_*lle 7

尝试

attachment = MIMEImage(f.read(), _subtype="jpeg") # error here
Run Code Online (Sandbox Code Playgroud)

  • 就我而言,`... _subtype="svg+xml" ...` (2认同)