Django无法发送带附件的电子邮件

时间:2017-01-26 05:44:51

标签: django python-2.7 email

我正在尝试使用此代码发送电子邮件。但是当我尝试的时候。发送的html或电子邮件附件。 但不是两者。如果我省略附件,则会发送电子邮件正文。 但如果我添加附件,则不会发送电子邮件正文。请有人为您提供建议。

  msg = EmailMultiAlternatives(subject=self.mail_subject, from_email=from_mail, to=(to,),
                                         connection=connection)
            if isinstance(attachment, list):
                for attach_path in attachment:
                    msg.attach_file(attach_path)

            msg.attach_alternative(html_with_context_data, "text/html")
            try:
                msg.send(fail_silently=True)
            except:
                pass

2 个答案:

答案 0 :(得分:1)

使用这样的代码你期望什么?

        try:
            msg.send(fail_silently=True)
        except:
            pass

你告诉django失败默默这意味着它不会告诉你是否出现问题。即使您关闭了静音模式,您的异常处理也将确保您永远不会听到它!

永远不要这样做

        except:
            pass

始终捕获特定扩展,并且在极少数情况下需要捕获这样的通用异常,请记录它。

import traceback

except:
    traceback.print_exc()

然后您将看到为什么没有发送您的附件。

(也许这应该是一个评论,但它太长了)

答案 1 :(得分:0)

花了2个小时后,我只添加了一行。现在我得到HTML和附件。

msg.content_subtype = 'html'