【问题标题】:MIME Multipart being sent as "noname" on Python 3MIME Multipart 在 Python 3 上作为“noname”发送
【发布时间】:2016-06-22 18:43:48
【问题描述】:

我有一个使用 Python 2.7 编写的脚本,可以发送电子邮件。以下代码完美运行:

msg = MIMEMultipart(
    From = "Name <mail@from.com>",
    To = "Name <mail@to.com>",
    Date=formatdate(localtime=True),
    Subject="SUBJECT")
msg.attach(MIMEText("""HTML Stuff""", 'html'))

with open(analysis_file, "rb") as fil:
    msg.attach(MIMEApplication(
                fil.read(),
                Content_Disposition='attachment; filename="%s"' % os.path.basename(analysis_file),
                Name=os.path.basename(analysis_file)
            ))

msg['Subject'] = "SUBJECT"
msg['From'] = "Name <mail@from.com>"
msg['To'] = "Name <mail@to.com>"

server.sendmail(FROMADDR, ["mail@to.com"], msg.as_string())

我将脚本转换为 Python 3.5,并且脚本的所有其他部分完全按预期工作。然而,上面的内容并没有:它不是发送带有 HTML 内容和附件的电子邮件,而是发送一封空白电子邮件,其中包含一个名为“noname”的无扩展名文件,我认为其中包含我想要发送的内容。

我尝试删除附件部分并仅保留 HTML 内容,但仍然没有处理。

为什么会发生这种情况,我该如何解决?

(我两次放置 Subject、From 和 To 的原因是,当我第一次使用它时,由于某种原因它无法正常工作,并且在它开始工作后我从未将其从那里删除。)

【问题讨论】:

    标签: python python-2.7 email python-3.x mime


    【解决方案1】:

    我通过重新阅读email documentation 并替换它来解决这个问题

    msg = MIMEMultipart(
        From = "Name <mail@from.com>",
        To = "Name <mail@to.com>",
        Date=formatdate(localtime=True),
        Subject="SUBJECT")
    

    msg = MIMEMultipart('alternative')
    

    【讨论】:

      猜你喜欢
      • 2014-06-17
      • 2011-03-29
      • 2017-03-02
      • 1970-01-01
      • 2015-09-30
      • 2014-06-12
      • 1970-01-01
      • 2021-08-06
      • 1970-01-01
      相关资源
      最近更新 更多