【问题标题】:sendmail with HTML message带有 HTML 消息的发送邮件
【发布时间】:2012-01-08 04:59:54
【问题描述】:

我正在使用 Python 进行编程。我已经有一个发送带有消息和附件的电子邮件的功能......我唯一的问题是我希望消息是 HTML,但我的不尊重......

这是我正在使用的功能

def enviarCorreo(fromaddr, toaddr, text, file):
   msg = MIMEMultipart('mixed')
   msg['From'] = fromaddr
   msg['To'] = toaddr
   msg['Subject'] = 'asunto'
   msg.attach(MIMEText(text))
   #adjunto
   adjunto = MIMEBase('application', "octet-stream")
   adjunto.set_payload(open(file, "rb").read())
   encode_base64(adjunto)
   anexo = os.path.basename(file)
   adjunto.add_header('Content-Disposition', 'attachment; filename= "%s"' % anexo)
   msg.attach(adjunto)
   #enviar
   server = smtplib.SMTP('localhost')
   server.set_debuglevel(1)
   server.sendmail(fromaddr, toaddr, msg.as_string())
   server.quit()
   return

我希望您能告诉我要更改什么或添加什么,以便我发送的消息可以是 HTML....

我正在使用“MIXED”多部分,因为 HTML 消息将包含一些不会附加但会成为消息一部分的图像.....

【问题讨论】:

    标签: python html mime-types sendmail mime-message


    【解决方案1】:

    官方文档页面上有一个发送 HTML 电子邮件的示例 - http://docs.python.org/library/email-examples.html

    【讨论】:

    • 谢谢,我已经尝试过这个页面......我的问题是他们导入这样做“来自email.mine.multipart----”我不知道为什么不起作用对我来说.....我必须这样做“从 email.MIMEMultipart 导入 MIMEMultipart”
    【解决方案2】:

    替换

    msg.attach(MIMEText(text))
    

    通过

    msg.attach(MIMEText(text, 'html'))
    

    (默认为“普通”)

    【讨论】:

    • 太棒了。别忘了奖励我;-)
    • 你知道如果我将 放入 HTML 消息中,并带有适当的路径,它会在消息中显示吗?我正在尝试这样做,但它只显示 X 图像(未找到图像)...
    • 在 MIMEText(x, y, charset='utf-8') 中添加字符集也可能有很大帮助。
    猜你喜欢
    • 2015-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-24
    • 1970-01-01
    • 1970-01-01
    • 2014-04-26
    • 2015-02-11
    相关资源
    最近更新 更多