内嵌图像与红宝石邮件宝石

syl*_*ian 4 ruby inline-images

对不起,如果我错过了一篇好文章,但我找不到一个很好的例子,说明如何使用ruby和邮件gem使用内联图像(我没有使用RoR)我能找到的最好的例子就在这里,但是我不明白.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
Run Code Online (Sandbox Code Playgroud)

我有邮件gem工作,它可以发送图像作为附件,但我需要它们显示在电子邮件内,而无需打开附件.

DMK*_*MKE 6

Mail gem的维护得很好,因此查看文档确实很有帮助.你提供的剪辑错过了不可或缺的部分:定义pic:

pic = attachments['banner.png']
Run Code Online (Sandbox Code Playgroud)

有了这些信息,您可以轻松找到文档attachments,这将产生这一点:

您还可以搜索特定附件:

# By Filename
mail.attachments['filename.jpg']   #=> Mail::Part object or nil
Run Code Online (Sandbox Code Playgroud)

在文档中Mail::Part,您将找到该cid方法的定义:

def cid
  add_content_id unless has_content_id?
  uri_escape(unbracket(content_id))
end
Run Code Online (Sandbox Code Playgroud)

(遗憾的是,这种方法没有记录,但很容易推断"cid"代表"内容id").

最后,RFC2557定义了CID URI的用法,以识别和引用电子邮件中的封装文档(如图像).这是哪里

body "<img ... src='cid:...'>"
Run Code Online (Sandbox Code Playgroud)

来自.