从Heroku上托管的Django应用程序发送电子邮件,其附件存储在AWS S3中

时间:2014-01-23 21:00:07

标签: python django heroku amazon-s3

所以我想发送一封来自Heroku托管的Django / Python的电子邮件,其附件(PDF)位于S3存储桶中。因此,我可以发送一封包含本地存储的文件附件的电子邮件,但我找不到将远程托管文件附加到电子邮件的方法。

另外一点,我正在尝试使用Mandrill,但这不是主要要求。

我只是尝试从python / django发送带有附件的电子邮件,而不必先在本地保存附件(因为我的Heroku设置不推荐/可能/理想)

1 个答案:

答案 0 :(得分:5)

这很简单,假设您的文件存储为普通文件字段(选择了不同的存储空间),那么您可以执行以下操作:

message = EmailMessage(subject, body, from_email, bcc=recipient_list)
message.attach(FILENAME, mymodel.myfilefield.read())

这只是将文件从S3临时下载到内存中,并发送附带附件的电子邮件,而无需使用本地文件系统。