加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 如何使用ActionMailer发送HTML电子邮件?

发布时间:2020-12-17 02:01:45 所属栏目:百科 来源:网络整理
导读:使用rails 2.3.14 我的电子邮件erb: data.html.erb: % @data.each do |error| % table % error.each_pair do |k,v| % tr td %= k % /td td %= ap v % /td /tr % end % /table br /% end % 我可以收到电子邮件,但是当我这样做时,它会显示为纯文本 – 而不是
使用rails 2.3.14

我的电子邮件erb:
data.html.erb:

<% @data.each do |error| %>
    <table>
        <% error.each_pair do |k,v| %>
            <tr>
                <td>
                    <%= k %>
                </td>
                <td>
                    <%= ap v %>
                </td>
            </tr>   
        <% end %>
    </table>
    <br />
<% end %>

我可以收到电子邮件,但是当我这样做时,它会显示为纯文本 – 而不是呈现HTML.

Action Mailer配置:

config.action_mailer.raise_delivery_errors = true

# Send emails during development
config.action_mailer.perform_deliveries = true
ActionMailer::Base.delivery_method = :sendmail

更新:必须在我的交付方式中指定内容类型:

def data(data,sent_at = Time.now)
    Time.zone = 'Eastern Time (US & Canada)'

    content_type 'text/html'
    subject     "[#{RAILS_ENV}] An error has occurred - #{Time.now.to_s("%B %d,%Y")}"
    recipients  "bugs@mydomain.com"
    from        AppConfig['from_email']
    sent_on     sent_at
    @body   =   {:data => data}
  end

解决方法

在某些情况下,似乎rails可能以某种方式缓存文本模板.

我只是

>生成一个包含单个视图,文本视图的新邮件程序
>测试了邮件并发送了一封短信
>将文本电子邮件重命名为html(foo.text.haml – > foo.html.haml)
>重新测试邮件…并收到短信(嘘!)
>使用新名称(bar.html.haml)在文本版本旁边创建HTML版本
>重新启动服务器
>重新测试(发送栏).这次有一封HTML电子邮件.
>重新测试了原始的html电子邮件(foo).得到了HTML电子邮件

小龙虾.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读