You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Action Mailer发送邮件时Inline Attachments图片无法显示求助

Rails内嵌图片在Gmail中不显示的解决方法

针对你在Rails 7.0.6中使用Gmail发送内嵌图片无法显示的问题,可尝试以下几种修复方案:

1. 以二进制模式读取图片文件

图片属于二进制文件,使用File.read默认文本模式读取可能导致文件损坏,需改为二进制模式读取:

def send_mail
  attachments.inline['imagen.png'] = File.open(Rails.root.join("public", "borrar.png"), 'rb') { |file| file.read }
  mail(to: email, subject: 'test')
end

2. 使用Rails内置的inline_image_tag辅助方法

替换视图中的image_tag为专门用于内嵌图片的inline_image_tag,它会自动处理CID引用:

<%= inline_image_tag 'imagen.png' %>

确保邮件以正确的多部分相关类型发送,避免Gmail解析异常:

def send_mail
  attachments.inline['imagen.png'] = File.open(Rails.root.join("public", "borrar.png"), 'rb') { |file| file.read }
  mail(to: email, subject: 'test', content_type: "multipart/related")
end

4. 确保邮件包含纯文本版本

如果仅发送HTML邮件,部分邮件客户端可能解析异常,需同时提供纯文本视图(创建send_mail.text.erb文件),内容可设置为提示查看HTML版本的简单文本。


内容的提问来源于stack exchange,提问作者Johan Donado B.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 04:52:31