我对net/smtp
有疑问对于html电子邮件,您必须在电子邮件content-type: text/html
的标头中进行设置。但是,如果要发送附件,则必须将其更改为content-type: multipart/mixed
。这将使html电子邮件...不再是HTML。
所以问题是......我如何完成两者? HTML和附件?
谢谢
答案 0 :(得分:2)
多部分电子邮件的每个部分都有自己的MIME类型。因此,虽然电子邮件的内容类型是" multipart / mixed"但每个附件都有自己的MIME类型(文本,HTML等)。
以下是Doug Steinwand撰写的来自MIME and HTML in Email的多部分电子邮件示例:
To: whoever@someplace.com
Subject: MIME test
Content-type: multipart/mixed; boundary="theBoundaryString"
--theBoundaryString
Plain text message goes in this part. Notice that it
has a blank line before it starts, meaning that this
part has no additional headers.
--theBoundaryString
Content-Type: text/html
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
Content-Base: "http://somewebsite.com/"
<body><font size=4>This</font> is a
<i>test</i>.
--theBoundaryString--
您可以在此处看到文本附件没有明确的内容类型。如果附件没有明确的内容类型,则为US ASCII TEXT。 HTML附件的内容类型为&#34; text / html&#34;。可能还有其他附件,每个附件都有自己的MIME类型。
mail gem可以非常轻松地发送和解析多部分电子邮件。它稳定,维护良好,使用广泛。
此README示例显示了如何发送包含文本部分和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