4

抱歉,如果我错过了一篇好文章,但我找不到一个很好的例子,说明如何使用带有邮件 gem 的 ruby​​ 使用内联图像(我没有使用 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

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

4

2 回答 2

7

Mail gem 维护得很好,因此查看文档确实很有帮助。您提供的剪断遗漏了一个组成部分:定义pic

pic = attachments['banner.png']

有了这些信息,您可以轻松找到 上的文档attachments,这将产生以下内容:

您还可以搜索特定附件:

# By Filename
mail.attachments['filename.jpg']   #=> Mail::Part object or nil

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

def cid
  add_content_id unless has_content_id?
  uri_escape(unbracket(content_id))
end

(遗憾的是,这种方法没有记录,但很容易推断出“cid”代表“content id”)。

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

body "<img ... src='cid:...'>"

来自。

于 2014-06-17T22:22:29.063 回答
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"
于 2020-05-01T18:35:40.113 回答