2013-05-02 133 views
4

我使用Mail gem发送电子邮件。这是我的代码:如何设置发送邮件宝石的HTML电子邮件?

require 'mail' 
require 'net/smtp' 

Mail.defaults do 

delivery_method :smtp, { :address    => "smtp.arrakis.es", 
         :port     => 587, 
         :domain    => 'webmail.arrakis.com', 
         :user_name   => '[email protected]', 
         :password    => 'pass', 
         :authentication  => 'plain', 
         :enable_starttls_auto => true } 

end 

Mail::ContentTypeField.new("text/html") #this doesnt work 

msgstr= File.read('text2.txt') 

list.each do |entity| 
    begin 
     Mail.deliver do 
      from '[email protected]' 
      to  "#{entity}" 
      subject 'a good subject' 
      body msgstr 
     end 
    rescue => e 
    end 

end 
end 

我不知道如何设置内容类型,以便我可以格式化我的电子邮件为html例如。虽然我其实只是希望能够定义像我的电子邮件客户端粗体字呢:粗体文字。有人知道我需要指定什么样的内容类型来实现这个目的,以及如何用邮件实现它?

只是注意,上面的代码工作正常发送纯文本电子邮件。

+0

哇,我想说**粗体文字**,但它出来为*粗体文本*所以在这里它的两个星不是一个... – fartagaintuxedo 2013-05-02 14:00:30

回答

11

documentation

编写和发送多部分/替代(HTML和文本)电子邮件

邮件使得一些基本的假设,使得在做共同的事情 简单越好.. ..(要求从邮件库很多)

mail = Mail.deliver do 
    to  '[email protected]' 
    from 'Mikel Lindsaar <[email protected]>' 
    subject 'First multipart email sent with Mail' 

    text_part do 
    body 'This is plain text' 
    end 

    html_part do 
    content_type 'text/html; charset=UTF-8' 
    body '<h1>This is HTML</h1>' 
    end 
end 
+0

非常感谢!我正在阅读文档,无法找到这个......我想我不认为我会在例子中找到它。 – fartagaintuxedo 2013-05-02 14:15:18

+0

'text_part do'然后'CONTENT_TYPE( “text/plain的;字符集= ISO-8859-1;格式=流动”)'这允许写入星号2之间 – fartagaintuxedo 2013-05-02 14:21:35

+0

GRRRR没有它不,我的雷鸟显示它粗体文本以粗体表示的是星号,以及,怪异,而在其他邮件客户端做什么都没有......你知道我应该怎样,而无需步骤中指定的内容类型,允许像(星号)粗体字(星号)基本格式成html? – fartagaintuxedo 2013-05-02 14:42:13

3

@Simone Carletti的答案基本上是正确的,但我一直在努力,并且不希望我的电子邮件和单独的HTML部分有纯文本部分。如果你只是想整个电子邮件是HTML,像这样将工作:

mail = Mail.deliver do 
    to  '[email protected]' 
    from 'Mikel Lindsaar <[email protected]>' 
    subject 'First email sent with Mail' 
    content_type 'text/html; charset=UTF-8' 
    body '<h1>This is HTML</h1>' 
end 

我可能已经错过了它,我没有看到邮件的宝石文档中描述的任何该怎么做,我会认为会比制作多部分消息更常见。该文档似乎只包含纯文本消息和多部分消息。