django - 在 EmailMultiAlternatives 中, Attach 和 Attach_alternative 两者同时不起作用

标签 django pdf email-attachments

from django.core.mail import EmailMultiAlternatives
subject, from_email, to,bcc = 
request.POST['sub'],'fulfillment@***.com', lead.mailid,email_ccaddress
msg = EmailMultiAlternatives(subject, "", from_email, [to])
filepdf = open("Plan.pdf",'rb').read()
msg.attach("Plan.pdf",filepdf,'application/pdf')
msg.attach_alternative(request.POST['bodyofmail'], "text/html")
msg.content_subtype = 'html'
msg.send()

使用 Django 1.11.3 python 3 电子邮件多种选择

两者都工作正常,但是一旦我们使用附件和 Attach_alternative HTML 运行此代码,电子邮件服务器中只会接收 pdf 附件

最佳答案

问题在于您在消息上设置 content_subtype,然后附加单独的 text/html 替代方案。同时执行这两项操作没有意义 - 这意味着邮件客户端在电子邮件中收到两个 text/html 替代项,但不知道要呈现哪个。它只会使用第一个。

删除 content_subtype,或者将 html 正文放入 body 参数中并删除 attach_alternative。在后一种情况下,您可以停止使用 EmailMultiAlternative 并仅使用 EmailMessage 类。

关于django - 在 EmailMultiAlternatives 中, Attach 和 Attach_alternative 两者同时不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47842746/

相关文章:

Django assertTemplateUsed 使用 RequestFactory() 静默失败

java - iText 页面换行 - 更改元素的顺序

django - 使用 django 动态生成 PDF 并通过电子邮件发送

pdf - 如何使用ghostscript将PDF转换为PDF/A或PDF/X?

asp.net-mvc - ASP.NET MVC在新窗口中打开pdf文件

android - 尝试将创建的文本文件作为电子邮件附件发送 - 从默认文件夹

android - katzer/cordova-plugin-email-composer 使 Gmail 应用程序崩溃

django - 在 Digital Ocean Droplet 中更新 Django postgresql 数据库?

python - Django 1.7 google oauth2 token 验证失败

database - 在 webapp 中存储用户上传文件的最佳方式