在Mailgun消息Django / Python中附加生成的PDF

我试图将我们的应用程序从python邮件转换为Mailgun,但是遇到有附件的邮件时遇到问题。 特别是由应用程序生成的PDF(未存储在文件系统中)。

发送没有附件的电子邮件没有问题。

目前我们生成PDF格式如下:

pdf = StringIO()
draw_pdf(pdf, params)
pdf.seek(0)
attachment = MIMEApplication(pdf.read())
attachment.add_header("Content-Disposition", "attachment", filename=filename)
pdf.close()

然后附加并邮寄它:

from django.core.mail import EmailMultiAlternatives
msg = EmailMultiAlternatives(subject, text_content, from_email, to_email)

if html_content:
    msg.attach_alternative(html_content, "text/html")

if attachment:
    msg.attach(attachment)

msg.send()

很好用......我们如何转换成Mailgun呼叫?

我已经尝试了各种各样的东西,包括只是将它作为文件传递(失败):

requests.post(mailgun_url, auth=("api", mailgun_api), data=data, files=attachment)

上述工作正常,没有附件。 数据包含to,from,o:tags ...等

任何帮助,将不胜感激。 谢谢!

编辑

我能够通过更改我的PDF代码并正确获取requests.post来实现它的工作:

filename = "pdf_attachment.pdf"
pdf = StringIO()
draw_pdf(pdf, params)
pdf.seek(0)

attachment = ("attachment", (filename, pdf.read()))

r = requests.post(mailgun_url, auth=("api", mailgun_api), data=data, files=[attachment])

我能够通过更改我的PDF代码并正确获取requests.post来实现它的工作:

filename = "pdf_attachment.pdf"
pdf = StringIO()
draw_pdf(pdf, params)
pdf.seek(0)

attachment = ("attachment", (filename, pdf.read()))

r = requests.post(mailgun_url, auth=("api", mailgun_api), data=data, files=[attachment]

根据文档,文件参数应该是字典或元组列表。 它一定在寻找某种名字。

requests.post(
    ...,
    files=[("attachment", open("files/test.jpg"))],
)
链接地址: http://www.djcxy.com/p/23181.html

上一篇: Attach generated PDF in Mailgun message Django/Python

下一篇: Git merge remote pull requests on local clone