如何设置发送带有邮件gem的HTML电子邮件?

我正在使用Mail gem发送电子邮件。 这是我的代码:

require 'mail' require 'net/smtp' Mail.defaults do delivery_method :smtp, { :address => "smtp.arrakis.es", :port => 587, :domain => 'webmail.arrakis.com', :user_name => 'myname@domain.com', :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 'myname@domain.com' to "#{entity}" subject 'a good subject' body msgstr end rescue => e end end end 

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

只需注意,上面的代码适用于发送纯文本电子邮件。

从文档中

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

邮件做了一些基本的假设,并尽可能简单地做了常见的事情….(从邮件库中询问很多)

 mail = Mail.deliver do to 'nicolas@test.lindsaar.net.au' from 'Mikel Lindsaar ' 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 '

This is HTML

' end end

@Simone Carletti的答案基本上是正确的,但我正在努力解决这个问题,并且不想在我的电子邮件和单独的HTML部分中使用纯文本部分。 如果您只是希望整个电子邮件都是HTML,那么这样的内容将起作用:

 mail = Mail.deliver do to 'nicolas@test.lindsaar.net.au' from 'Mikel Lindsaar ' subject 'First email sent with Mail' content_type 'text/html; charset=UTF-8' body '

This is HTML

' end

我可能错过了它,我没有在Mail gem文档中看到任何描述如何做到这一点,我认为这比制作多部分消息更常见。 该文档似乎只包括纯文本消息和多部分消息。