当前位置 : 主页 > 编程语言 > ruby >

ruby-on-rails – 允许用户在Rails中为ActionMailer创建自定义电子邮件模板

来源:互联网 收集:自由互联 发布时间:2021-06-23
我想允许rails app的用户通过表单创建自己的电子邮件模板,并将其用作网站标准电子邮件模板表单,哪些邮件将被发送但我找不到任何教程,它还需要包含几个动态变量. 这样做是否有明确
我想允许rails app的用户通过表单创建自己的电子邮件模板,并将其用作网站标准电子邮件模板表单,哪些邮件将被发送但我找不到任何教程,它还需要包含几个动态变量.

这样做是否有明确的方法?

(因此用户将以引用变量的形式输入电子邮件文本
在发送之前将被评估)

有很多方法可以实现它.这是一种方式.

首先,您需要将用户生成的电子邮件模板存储在数据库中.

CustomEmailTemplate.create(user_id: params[:user_id], template_body: params[:template_body])

什么时候发送模板的电子邮件,你会做类似的事情:

custom_values = { name: "Whatever", value: "nice" }
template = CustomEmailTemplate.find(template_id)
CustomerEmailer.send_email(template, custom_values).deliver

为了使它真正起作用,你需要在邮件中做这样的事情:

def send_email(template, custom_values)
    @template = template
    @custom_values = custom_values
    mail subject: "Your subject goes here.."
end

在send_email.html.erb中,执行以下操作:

<%= @template.template_text.gsub(/@@name@@/, @custom_values[:name]).gsub(/@@value@@/, @custom_values[:value]) %>

您会看到模板包含“@@ name @@”和“@@ value @@”.这些是您可以使用自定义值替换的标记.

当然,您可以重构此代码以将替换逻辑放入模型等中,以使其成为“干净的代码”.

我希望这有帮助.

网友评论