python - 如何使用创建文件的文档的 S3 URL 将文档(pdf/图像)附加到 Django 电子邮件程序?

标签 python django email django-rest-framework email-attachments

我有一些图像和 PDF,可以通过各自的 S3 URL 获取它们。我想将这些文档附加到我使用 native Django Emailer 发送的电子邮件中。

有什么办法可以做到这一点,而无需在服务器上下载文档然后附加它们,因为这会产生删除电子邮件发送后的文档的开销。 另外,我不想在电子邮件中给出 URL,因此图像无法作为 HTML 的一部分嵌入到电子邮件中。

我正在使用

Python 2.7
Django 1.9 
DRF 3.4

最佳答案

假设您的文件存储为具有 s3 路径的普通文件字段,那么您可以执行以下操作:

message = EmailMessage(subject, body, from_email, recipient_list)
message.attach(FILENAME, xyzmodel.abcfilefield.read())

 from django.core.files.storage import default_storage
 try:
    yourfile = default_storage.open(files3_url, 'r')       
    email.attach(yourfile_name, yourfile.read())

except:
    pass

希望能解决您的问题!!

关于python - 如何使用创建文件的文档的 S3 URL 将文档(pdf/图像)附加到 Django 电子邮件程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49540983/

相关文章:

python - 通过 Q 限制选择范围

python - 如何从 python 中的 RFC 2822 邮件 header 中提取多个电子邮件地址?

html - Gmail 忽略 "display:none"

python - Django + uwsgi + nginx 。导入错误 : No module named py

python - 如何在 Django 中使用变量重定向?

javascript - 尽管设置了 MAIL_URL 环境变量,Meteor 邮件仍不发送

python - 使用Python Pandas,仅当 "nan"值不存在时,我可以根据另一列替换 df 中一列的值吗?

python - Flask 蓝图中的 render_template 使用其他蓝图的模板

Python 相当于基于 Perl 函数的 cgi 风格

python - 不了解页面结构的网页抓取