如何解决通过 Django 发送邮件时 Gmail 损坏的图像链接
我正在使用 Django 中的 SMTP 协议发送电子邮件。当我发送图片链接时,它是这样的:
https://example.com/images/pic1.jpg
但 Gmail 将其转换成这样:
https://ci5.googleusercontent.com/proxy/vI79kajdUGm6Wk-fjyicDLjZbCB1w9NfkoZ-zQFOB2OpJ1ILmSvfvHmE56r72us5mIuIXCFiO3V8rgkZOjfhghTH0R07BbcQy5g=s0-d-e1-ft#https://example.com/images/pic1.jpg
我尝试了图像 URL 代理白名单设置。它正在显示图像的预览。但图像链接不起作用。
PS:我也尝试过 here 建议的方法,但无济于事。
更新 1: 图像存储在 AWS s3 存储桶中。如果我将它们公开,那么它们就可以正常工作。但是我不能公开。还有其他方法吗?
解决方法
图像存储在 AWS s3 存储桶中。如果我将它们公开,那么它们就可以正常工作。但是我不能公开。还有其他方法吗?
如果您想继续通过 URL 引用图像,那么简短的回答是“否”,因为 GMail 的图像代理需要以某种方式通过“公共”互联网访问您的图像。
这个问题有点离题,因为它与 Django 关系不大,但如果您将 GMail 用于业务 you can configure which URLs should not go through the proxy。这应该允许您防止代理从您的“私有”S3 存储桶 URL 提供的图像。请注意,这仅适用于您业务域内的 GMail 帐户;例如,如果将电子邮件发送到非企业或其他企业 Gmail 帐户,则图像将被代理且无法加载。
另一种方法可以避免完全代理它以在电子邮件中附加图像,而不是通过 URL 引用它。您可以参考此答案以了解如何实现https://stackoverflow.com/a/3787766/70191。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。