ruby-on-rails - 使用 Ruby 中的 ActionMailer 类在电子邮件正文中呈现 HTML 字符串

标签 ruby-on-rails ruby render actionmailer

我正在尝试使用 ActionMailer 类在 ROR 中发送邮件。

我创建了一个邮件对象,如下所示:

mail(to: 'xyz@gmail.com', subject: "some subject text", body: template)

这里的模板是一个字符串,其中包含要在邮件正文中呈现的 HTML。

当我尝试上面的声明时,HTML 字符串会像在 Gmail 或任何其他客户端中一样显示,而不是被渲染。

我知道我可以制作一个单独的 ERB 文件供查看和 邮件 View 位于 app/views/name_of_mailer_class 目录。

但我想渲染我从另一个内联源生成的 HTML 字符串,而不是将其存储在文件中。

我也试过在下面的链接中找到的这个方法,但它产生了相同的结果。 http://carols10cents.github.io/versioned_rails_guides/v3.2.2/action_mailer_basics.html

mail(:to => user.email,
         :subject => "Welcome to My Awesome Site") do |format|
      format.html { render 'another_template' }
      format.text { render :text => 'Render text' }
    end 

最佳答案

终于找到了一种无需任何 View 文件即可呈现 HTML 的方法。使 HTML 字符串 html_safe 在电子邮件客户端中呈现 HTML。

mail(to: 'xyz@gmail.com', subject: 'some subject text') do |format| format.html { render html: template.to_s.html_safe }

关于ruby-on-rails - 使用 Ruby 中的 ActionMailer 类在电子邮件正文中呈现 HTML 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48810332/

相关文章:

ruby-on-rails - Ruby 变量赋值为 false 但为 nil

python - render_to_response 时 Django View ValueError

python - 如何在渲染后将数据插入模板? ( Django )

ruby-on-rails - 模型验证失败时,在Rails中的哪里显示注释 Controller ?

css - RoR Assets 管道生成额外链接

html - Bootstrap 和 CSS。抵消评论麻烦

javascript - rails 4 : Angular and JS only loading after page refresh

ruby-on-rails - 权限被拒绝@dir_s_mkdir (Errno::EACCES) - 在应用程序运行时

ruby-on-rails - 重构方法不接受属性

javascript - jQuery-File-Upload 上传前重命名文件