【问题标题】:Is there a Rails gem that allows a user to send HTML emails via the Rails app?是否有 Rails gem 允许用户通过 Rails 应用程序发送 HTML 电子邮件?
【发布时间】:2013-02-09 19:48:42
【问题描述】:

我们想向我们网站上的注册用户发送电子邮件。

到目前为止,我们也以编程方式创建电子邮件并发送它们。

我们希望网站管理员可以使用 Rails 应用程序上的富文本编辑器创建 HTML 电子邮件,从数据库中选择用户并将其发送出去。

本质上,它的行为有点像网络邮件程序,比如 gmail。但是:邮件将作为模板组成,并且可以使用一些 ERB,因此它们可以重新用于电子邮件用户等。

示例应用程序可以是发送给所有用户或仅部分用户的简报或广播搜索。

有这样的宝石吗?

如果没有,您将如何设置?

【问题讨论】:

  • 刚刚添加了一些我想用这个实现的目标

标签: ruby-on-rails html-email rich-text-editor


【解决方案1】:

我不知道有什么 gem 专门做这个,但是你可以查看 action mailer,它默认包含在 Rails 中。

非常适合发送模板电子邮件(帐户确认等)。您创建一个视图,它将该视图的内容(使用 ERB)呈现到电子邮件正文中。

您也许可以使用它来进行更多自定义,但我没有过多地使用它。

如果您通过 UNIX mail 命令以编程方式发送邮件,另一种选择是将内容类型指定为 HTML。我使用的命令是:

mail -a 'Content-type: text/html' -s 'Subject' to_address@example.com < file_containing_message.html

【讨论】:

  • 亲爱的 graysonwright,这并没有真正的帮助。当然,我会使用 action mailer 之类的东西来发送邮件。我的重点实际上在于将电子邮件编写为模板,而不需要访问 rails 应用程序本身:审核用户可以创建新电子邮件,其中可以包含 ERB,并且可以发送给系统中的部分或所有用户。在某种程度上,它的行为类似于 gmail,仅适用于我的网络应用程序。
【解决方案2】:

啊,抱歉——我没听懂这个问题。我认为您的案例没有什么特别之处,因为它是一个非常具体的用例。

我建议在电子邮件模板的数据库中存储一个 ERB 文本块。然后你可以使用这样的东西来呈现电子邮件:

require 'erb'
name = user.name
email_html = ERB.new(email.template).result(binding)

请参阅ERB Documentation 了解更多信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-06
    • 1970-01-01
    • 1970-01-01
    • 2014-10-01
    • 2011-05-12
    • 2013-06-09
    • 2015-07-31
    相关资源
    最近更新 更多