html - Rails 邮件程序 mimepart 在邮件正文中显示为文本

标签 html ruby-on-rails mime mailer

我正在使用 ActionMailer 发送测试邮件。正在呈现模板并且邮件正在正常发送。唯一的问题是 mime 部分和其他 header 数据由 Google 在邮件正文中显示。

这是邮件的代码..

def testing

    mail(:to => "apoorvparijat@gmail.com",:subject => "html mailer", :content_type => "text/html") do |format|
          format.html { render 'testing' }
          format.text { render :text => "bing" }
    end
end

这是收到的电子邮件。

----==_mimepart_508fd46252b8c_8023fe595835ad0479a6 Date: Tue, 30 Oct 2012 18:51:38 +0530     
Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit
Content-ID: <508fd46254ea7_8023fe595835ad0480b8@Apoorv-Parijats-MacBook-Pro-2.local.mail> 
bing ----==_mimepart_508fd46252b8c_8023fe595835ad0479a6 Date: Tue, 30 Oct 2012 18:51:38 
+0530 Mime-Version: 1.0 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding:  
7bit Content-ID: <508fd46256465_8023fe595835ad04819c@Apoorv-Parijats-MacBook-Pro-
2.local.mail> Hi bing
column 1    column 2
----==_mimepart_508fd46252b8c_8023fe595835ad0479a6--

控制台的输出-

 Loading development environment (Rails 3.2.2)
 1.9.3-p125 :001 > RankMailer.testing.deliver
 I, [2012-10-30T18:51:38.331238 #2050]  INFO -- :   Rendered rank_mailer/testing.html.erb           
 (1.8ms)
 I, [2012-10-30T18:51:38.333117 #2050]  INFO -- :   Rendered text template (0.0ms)
 I, [2012-10-30T18:51:45.824962 #2050]  INFO -- : 
 Sent mail to apoorvparijat@gmail.com (7484ms)
 D, [2012-10-30T18:51:45.825125 #2050] DEBUG -- : Date: Tue, 30 Oct 2012 18:51:38 +0530
 From: admin@rankdemon.com
 To: apoorvparijat@gmail.com
        Message-ID: <508fd462572ec_8023fe595835ad0482c0@Apoorv-Parijats-MacBook-Pro-2.local.mail>
    Subject: html mailer
    Mime-Version: 1.0
    Content-Type: text/html;
     charset=UTF-8
    Content-Transfer-Encoding: 7bit



    ----==_mimepart_508fd46252b8c_8023fe595835ad0479a6
    Date: Tue, 30 Oct 2012 18:51:38 +0530
    Mime-Version: 1.0
    Content-Type: text/plain;
     charset=UTF-8
    Content-Transfer-Encoding: 7bit
    Content-ID: <508fd46254ea7_8023fe595835ad0480b8@Apoorv-Parijats-MacBook-Pro-2.local.mail>

    bing

    ----==_mimepart_508fd46252b8c_8023fe595835ad0479a6
    Date: Tue, 30 Oct 2012 18:51:38 +0530
    Mime-Version: 1.0
    Content-Type: text/html;
     charset=UTF-8
    Content-Transfer-Encoding: 7bit
    Content-ID: <508fd46256465_8023fe595835ad04819c@Apoorv-Parijats-MacBook-Pro-2.local.mail>

    Hi bing

    <table style="border:1px solid red">
        <tr>
            <td>column 1</td>
            <td>column 2</td>
        </tr>
    </table>

    ----==_mimepart_508fd46252b8c_8023fe595835ad0479a6--

     => #<Mail::Message:70255316899740, Multipart: false, Headers: <Date: Tue, 30 Oct 2012 18:51:38 +0530>, <From: admin@rankdemon.com>, <To: apoorvparijat@gmail.com>, <Message-ID: <508fd462572ec_8023fe595835ad0482c0@Apoorv-Parijats-MacBook-Pro-2.local.mail>>, <Subject: html mailer>, <Mime-Version: 1.0>, <Content-Type: text/html>, <Content-Transfer-Encoding: 7bit>>

最佳答案

不要在邮件方法中指定 :content_type => "text/html"。由于您使用的是格式 block ,因此 Rails 会自动选择 MIME 类型。

更多详情:

试试这个发送多部分电子邮件(即电子邮件的 html 和文本格式)。注意格式的顺序。

mail(:to => "apoorvparijat@gmail.com", :subject => "html mailer") do |format|
    format.text { render :text => "bing" }
    format.html { render 'testing' }
end

关于html - Rails 邮件程序 mimepart 在邮件正文中显示为文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13140215/

相关文章:

html - 如何在垂直表(转置表)中自动换行标题?

javascript - 如何在 Angular JS 中使用 ng-model 将文本框值发送到 Controller

ruby-on-rails - 尝试获取 link_to 以便在 ruby​​ on Rails 中使用缩略图

ruby-on-rails - 如何使相同的方法可用于 Rails 中的多个模型?

java - 如何获取文件的媒体类型(MIME类型)?

python - 在 Python smtplib 中检测退回的电子邮件

html - 绘画子菜单中的问题

mysql - 将数据库中的值设置为 False 取决于其他值 True/False

python - 使用 MIMEApplication 将 s3 文件附加到 smtplib lib 电子邮件

javascript - 获取元素的滚动位置以与另一个元素同步