很抱歉,如果我错过了一篇好文章,但我找不到一个很好的例子,说明如何使用ruby和邮件gem使用内嵌图像(我不使用RoR)
我能找到的最好的例子是here,但我不明白.cid
方法的来源。
这里是上述帖子的摘录,其中使用了.cid
方法。
html_part do
content_type 'text/html; charset=UTF-8'
body "<img width=597 height=162 id='Banner0' src='cid:#{pic.cid}'>"
end
我有邮件宝石工作,它可以发送图像作为附件,但我需要它们显示在电子邮件中,而无需打开附件。
答案 0 :(得分:6)
邮件宝石维护得很好,所以查看documentation真有帮助。你提供的剪辑错过了一个不可或缺的部分:pic
:
pic = attachments['banner.png']
通过这些信息,您可以轻松找到attachments
上的文档,这将产生这一点:
您还可以搜索特定附件:
# By Filename mail.attachments['filename.jpg'] #=> Mail::Part object or nil
在Mail::Part
的文档中,您将找到cid
方法的定义:
def cid
add_content_id unless has_content_id?
uri_escape(unbracket(content_id))
end
(遗憾的是,这种方法没有记录,但很容易推断出&#34; cid&#34;代表&#34;内容id&#34;)。
最后,RFC2557定义了CID URI的用法,以识别和引用电子邮件中的封装文档(如图像)。这是
body "<img ... src='cid:...'>"
来自。
答案 1 :(得分:1)
您也可以致电url
:
> mail.attachments[0].url
=> "cid:5eac50cfe27e2_373f3fed9e82e044326c3@Samuels-MacBook-Pro.local.mail"
> mail.attachments[0].cid
=> "5eac50cfe27e2_373f3fed9e82e044326c3@Samuels-MacBook-Pro.local.mail"