我正在使用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。虽然我实际上只是希望能够像我的电子邮件客户端那样定义粗体文本:粗体文字。有没有人知道我需要指定哪种内容类型才能实现这一目标,以及如何通过邮件实现它?
只需注意,上面的代码适用于发送纯文本电子邮件。
答案 0 :(得分:13)
撰写和发送多部分/替代(html和文字)电子邮件
邮件做了一些基本的假设,并做了常见的事情 尽可能简单....(从邮件库中询问很多)
mail = Mail.deliver do to 'nicolas@test.lindsaar.net.au' from 'Mikel Lindsaar <mikel@test.lindsaar.net.au>' 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
答案 1 :(得分:3)
mail = Mail.deliver do
to 'nicolas@test.lindsaar.net.au'
from 'Mikel Lindsaar <mikel@test.lindsaar.net.au>'
subject 'First email sent with Mail'
content_type 'text/html; charset=UTF-8'
body '<h1>This is HTML</h1>'
end
我可能错过了它,我没有在Mail gem文档中看到任何描述如何做到这一点的内容,我认为这比制作多部分消息更常见。该文档似乎只包括纯文本消息和多部分消息。