2013-05-02 231 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 

我可能已經錯過了它,我沒有看到郵件的寶石文檔中描述的任何該怎麼做,我會認爲會比製作多部分消息更常見。該文檔似乎只包含純文本消息和多部分消息。