Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Mailgun消息Django/Python中附加生成的PDF_Python_Django_Email_Pdf_Mailgun - Fatal编程技术网

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

在Mailgun消息Django/Python中附加生成的PDF,python,django,email,pdf,mailgun,Python,Django,Email,Pdf,Mailgun,我正在尝试将我们的应用程序从python mail切换到Mailgun,但在处理带有附件的电子邮件时遇到了问题。特别是由应用程序生成的PDF(未存储在文件系统中) 发送没有附件的电子邮件没有问题 目前,我们生成的PDF格式如下: pdf = StringIO() draw_pdf(pdf, params) pdf.seek(0) attachment = MIMEApplication(pdf.read()) attachment.add_header("Content-Disposi

我正在尝试将我们的应用程序从python mail切换到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()
工作很好。。。我们如何转换成邮枪通话

我尝试过各种方法,包括按原样文件传递(未成功):

以上无需附件即可正常工作。数据包含to、from、o:标记。。。等等

任何帮助都将不胜感激。谢谢

编辑
通过更改PDF代码并获得请求,我可以使其正常工作。帖子结构正确:

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])
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]
根据it,files参数应该是字典或元组列表。它一定在寻找某种名称

requests.post(
    ...,
    files=[("attachment", open("files/test.jpg"))],
)

通过更改PDF代码并获得请求,我可以使其正常工作。帖子结构正确:

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])
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]

是的,问题是当它不是文件系统中要打开的文件时,如何让它附加。我已经弄明白了,并更新了我的问题。