【问题标题】:inline images with ruby mail gem带有 ruby​​ 邮件 gem 的内联图像
【发布时间】:2014-08-08 01:32:53
【问题描述】:

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

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

【问题讨论】:

    标签: ruby inline-images


    【解决方案1】:

    Mail gem 维护得很好,因此查看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
    

    (遗憾的是,此方法没有文档记录,但很容易推断“cid”代表“内容 ID”)。

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

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

    来自。

    【讨论】:

      【解决方案2】:

      您也可以拨打url:

      > mail.attachments[0].url
      => "cid:5eac50cfe27e2_373f3fed9e82e044326c3@Samuels-MacBook-Pro.local.mail"
      
      > mail.attachments[0].cid
      => "5eac50cfe27e2_373f3fed9e82e044326c3@Samuels-MacBook-Pro.local.mail"
      

      【讨论】:

        猜你喜欢
        • 2015-03-28
        • 2010-11-15
        • 2011-11-22
        • 2023-03-29
        • 1970-01-01
        • 2014-12-24
        • 2013-10-10
        • 2017-02-23
        • 2017-04-21
        相关资源
        最近更新 更多