Rails 4 动作邮件程序图像绝对路径在发送邮件时添加了代理 https 路径

Posted

技术标签:

【中文标题】Rails 4 动作邮件程序图像绝对路径在发送邮件时添加了代理 https 路径【英文标题】:Rails 4 action mailer image absolute path added with proxy https path in sending mail 【发布时间】:2016-12-25 02:03:42 【问题描述】:

我正在尝试发送带有图像的邮件。我检查了 letter_opener gem,没关系,但是当我在我的 gmail 帐户中收到邮件时,图像丢失了。显示路径的图像 src https://ci6.googleusercontent.com/proxy/RLRFotvE91M7TbTVT8Todcjnjv9ymRfVHwxGRJpV-OcuAhGKbUeokSngMmgp74L6wYKN0jiiGZjbRP7StvXK3KWL7ttUSg=s0-d-e1-ft#http://localhost:3000/uploads/image/17/gost1.jpg 但它应该只是 http://localhost:3000/uploads/image/17/gost1.jpg 并且没关系。图片标签如:

<%= image_tag(@image_for_artist) %><br>
development.erb=> 
 config.action_controller.asset_host = 'localhost:3000'
 config.action_mailer.asset_host = 'http://localhost:3000'

为什么图像标签不显示绝对路径而不是 ci6.googleusercontent.com 路径。

【问题讨论】:

转到mailinator.com 创建一个假帐户,然后尝试向您的假帐户发送电子邮件。只是为了检查链接包装是否仅在 Gmail 客户端或您发送的所有电子邮件中 【参考方案1】:

我可以给你一个 Sendgrid 的例子来说明为什么会发生这种情况。基本上,您可以配置电子邮件提供商是否应该“包装您的链接”。例如,Sendgrid 这样做是为了对链接周围的数据进行跟踪和其他聚合(例如是否点击了注册链接,以及点击了多少次),这非常有用,但并不美观。

所以我猜你可以在你的电子邮件云提供商帐户中的某个地方禁用此功能。

更新

好的,我们需要澄清一些事情。 Gmail 既可以用作接收电子邮件的电子邮件客户端,也可以用作发送电子邮件的SMTP 服务器。我的理解是您说您使用 Gmail 作为 SMTP 服务器。你能澄清一下你是如何发送电子邮件的吗? 您的应用程序是否使用 sendmail、postfix、... 其他内置电子邮件服务器解决方案,或者您是否使用 3rd 方 SMTP 服务器(云)来发送 Gmail SMTP、Sendgrid、Mandrill 等电子邮件?

更新2

应用程序正在使用 Gmail SMTP 服务器。在这个 SO 问题中是一个解决方案 -> Gmail's new image caching is breaking image links in newsletter

【讨论】:

我正在使用 gmail 发送电子邮件。我应该在 gmail 帐户的哪里找到“包装你的链接” 不认识我的朋友,你必须用谷歌搜索该信息。它通常被称为“链接跟踪”......但对于 gmail,这可能是他们的安全要求,因为您可以发布恶意链接,所以如果他们发现他们只是禁用了他们身边的链接。 我不想做广告或其他任何事情,但我真的推荐 Sendgrid,它真的很简单,选项很明确 sendgrid.com/docs/Integrate/Frameworks/rubyonrails.html 或 Mailchimp/Mandril 如果你想拥有远程模板 ci6.googleusercontent.com/proxy/…" class="CToWUd"> 为什么,应该是 localhost:3000/uploads/image/17/gost1.jpg" class= "CToWUd"> 我了解问题所在,我的意思是,Gmail 这样做是为了进行链接跟踪或提高链接的安全性。如果您将 SMTP 服务器设置为 Gmail,我不知道如何(或是否有可能)将其关闭,我只是推荐您可以打开/关闭此选项的其他替代云 SMTP 电子邮件提供商。

以上是关于Rails 4 动作邮件程序图像绝对路径在发送邮件时添加了代理 https 路径的主要内容,如果未能解决你的问题,请参考以下文章

Rails 4动作邮件程序SMTP-AUTH错误缺少秘密短语?

Rails 4.2 - Sidekiq 在开发中不发送电子邮件

ActionMailer 在开发 Rails 4 中不发送邮件

image_url 在动作邮件程序中不起作用(Ruby on rails)

Symfony2:控制器中动作/路由的完整路径

Rails 邮件程序在电子邮件上发送空正文