【问题标题】:Django EmailMessage with attachment issue带有附件问题的 Django EmailMessage
【发布时间】:2013-08-07 09:26:13
【问题描述】:

我正在使用 EmailMessage 发送带有附件的邮件。该附件是 .html 文件。我成功地在电子邮件中附加了文件。但是那个 html 不能正确显示。 Html 文件在附件内容中显示了一些标签。

代码返回如下,

attach_file_name 是我要显示的文件路径,即“/path/of/html/file.html”

msg = EmailMessage(subject, content, from_email, to_list, cc=cc_list, bcc=bcc_list)
if attach_file_name:
    msg.attach_file(attach_file_name)
msg.content_subtype = "html"
msg.send()

请帮帮我

【问题讨论】:

  • 听起来您的附件中可能有不正确的关闭标签或格式错误的 HTML。
  • @Brandon 你可能是对的。 html 来自服务器,并且 html 非常巨大,所以我无法检查每一行代码。
  • 我明白了。至少你知道从哪里开始寻找。

标签: django django-email


【解决方案1】:

你需要使用 EmailMultiAlternatives

from django.core.mail import EmailMultiAlternatives

msg = EmailMultiAlternatives(subject, content, from_email, to_list, cc=cc_list, bcc=bcc_list)
if attach_file_name:
    msg.attach_file(attach_file_name, mimetype="text/html")
msg.send()

【讨论】:

  • 感谢您的回答。我也试过这个,但它不适合我。在 html 文件中,一些标签可用,如 已弃用,这会产生任何问题??
  • 您仍然可以使用字体标签,即使它们已被弃用。
【解决方案2】:

我在 BeautifulSoup 的帮助下阅读了该文件,然后将该文件附加到电子邮件中,然后 html 格式正确

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-26
    • 2017-11-15
    • 2011-08-25
    相关资源
    最近更新 更多