Ruby on Rails 7 - 在电子邮件中发送内嵌图像

问题描述 投票:0回答:1

我有一个 Ruby on Rails 7 应用程序,在我的 localhost:3000 上本地运行。我可以发送电子邮件,但我还想在电子邮件内包含徽标图像,内联,不可下载的附件。这是代码:

class XYZMailer < ApplicationMailer

  def create_xyz_email(first, second)
    @first = first
    @second= second
    attachments.inline['logo.png'] = File.read(Rails.root.join('app', 'assets', 'images', 'logo.png'))

    mail(to: @second.user.email, subject: "New XYZ #{@first.title} for you")

  end
end

我在 html 视图中尝试了不同的选项,但没有一个有效:

<%= image_tag attachments['logo.png'].url, alt: "logo", style: "text-align: center; max-width: 96px;" %>
<img src="cid:logo.png" alt="logo" style="text-align: center; max-width: 96px;">
<%= image_tag attachments['logo.png'].url %>
<img src="cid:logo.png" alt="XYZ Logo" style="text-align: center; max-width: 96px;">
<img src="data:image/png;base64,YourBase64EncodedImageHere" alt="logo" style="text-align: center; max-width: 96px;">
<img src="data:image/png;base64,<%= Base64.encode64(File.read('app/assets/images/logo.png')).gsub("\n", '') %>" alt="XYZLogo">

知道我应该做什么才能使图像在电子邮件中可见吗?

ruby-on-rails action actionmailer mailer
1个回答
0
投票

我想你已经很接近了。

对于我的项目来说,

<img src="cid:'logo.png'" ...>

有效。请注意单引号。

© www.soinside.com 2019 - 2024. All rights reserved.