为了账号安全,请及时绑定邮箱和手机立即绑定

有没有办法在 Rails 上混合纯文本和 HTML 电子邮件?

有没有办法在 Rails 上混合纯文本和 HTML 电子邮件?

繁花不似锦 2023-09-04 16:20:16
我正在做Ruby on Rails教程https://www.learnenough.com/ruby-on-rails-6th-edition-tutorial/account_activation#sec-mailer_templates并生成了一个User mailer用于帐户激活的模板。这是代码:应用程序/视图/user_mailer/account_activation.text.erbHi <%= @user.name %>,Welcome to the Sample App! Click on the link below to activate your account:<%= edit_account_activation_url(@user.activation_token, email: @user.email) %>应用程序/视图/user_mailer/account_activation.html.erb<h1>Sample App</h1><p>Hi <%= @user.name %>,</p><p>Welcome to the Sample App! Click on the link below to activate your account:</p><%= link_to "Activate", edit_account_activation_url(@user.activation_token,                                                    email: @user.email) %>我理解它们之间的区别(“HTML 是网页和电子邮件模板的编码方式,以便格式化文本并添加图像。纯文本是常规文本,没有粗体、斜体、下划线或特殊布局等格式选项”选项”来源:https://www.cakemail.com/blog/html-vs-plain-text/),但我不明白为什么有两个文件具有相同的嵌入式 Ruby 代码。我可以将它们混合在一个文件中吗?
查看完整描述

1 回答

?
繁星coding

TA贡献1797条经验 获得超4个赞

不,您不能将它们两者混合在一个文件中。Rails 将分别呈现模板的 .text 和 .html 变体,然后将它们一起通过多部分电子邮件发送。能够显示 HTML 电子邮件的客户端将看到 HTML 变体,而仅能够显示文本的客户端将获得文本。

如果需要,您可以仅提供或其他模板,但如果您仅使用文本,那么您不能使用 HTML(显然),如果您仅使用 HTML,则无法显示 HTML 的客户端将显示 HTML 源代码作为消息,使其实际上不可读。如果您的电子邮件很简单并且不需要标记,那么您可以只提供一个 .text 模板,一切都应该可以正常工作。


查看完整回答
反对 回复 2023-09-04
  • 1 回答
  • 0 关注
  • 69 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信