通过 Django 发送邮件时 Gmail 损坏的图像链接
Gmail's broken image links when sending mails through Django
我正在使用 Django 中的 SMTP 协议发送电子邮件。当我发送图像 link 时,它是这样的:
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 代理白名单设置。它显示 image.But 图片 link 的预览不工作。
PS: 我也试过建议的方法 here 无济于事。
更新 1:
图像存储在 AWS s3 存储桶中。如果我让它们 public 那么它们就可以正常工作。但是我不能用其他方法让它们 public.Is 吗?
The images are stored in the AWS s3 bucket. If I make them public then they work fine. But I can't make them public.Is there any other way?
如果您想通过 URL 继续引用图片,简短的回答是“否”,因为 GMail 的图片代理需要通过“public”互联网以某种方式访问您的图片。
这个问题有点离题,因为它与 Django 关系不大,但如果您使用 GMail 进行业务 you can configure which URLs should not go through the proxy。这应该允许您防止从您的“私有”S3 存储桶 URL 提供的图像被代理。请注意,这仅适用于您企业域内的 GMail 帐户;例如,如果电子邮件发送到非企业或其他企业 Gmail 帐户,图像将被代理并无法加载。
另一种方法可以避免完全代理它以在电子邮件中附加图像,而不是通过 URL 引用它。您可以参考此答案以了解如何实现 .
我正在使用 Django 中的 SMTP 协议发送电子邮件。当我发送图像 link 时,它是这样的:
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 代理白名单设置。它显示 image.But 图片 link 的预览不工作。
PS: 我也试过建议的方法 here 无济于事。
更新 1: 图像存储在 AWS s3 存储桶中。如果我让它们 public 那么它们就可以正常工作。但是我不能用其他方法让它们 public.Is 吗?
The images are stored in the AWS s3 bucket. If I make them public then they work fine. But I can't make them public.Is there any other way?
如果您想通过 URL 继续引用图片,简短的回答是“否”,因为 GMail 的图片代理需要通过“public”互联网以某种方式访问您的图片。
这个问题有点离题,因为它与 Django 关系不大,但如果您使用 GMail 进行业务 you can configure which URLs should not go through the proxy。这应该允许您防止从您的“私有”S3 存储桶 URL 提供的图像被代理。请注意,这仅适用于您企业域内的 GMail 帐户;例如,如果电子邮件发送到非企业或其他企业 Gmail 帐户,图像将被代理并无法加载。
另一种方法可以避免完全代理它以在电子邮件中附加图像,而不是通过 URL 引用它。您可以参考此答案以了解如何实现 .