使用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' %>
3. 显式设置邮件内容类型为multipart/related
确保邮件以正确的多部分相关类型发送,避免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.
相关产品推荐
相关产品推荐

