通过 mail-gpg gem 对邮件附件进行加密

Mail's attachment encryption via mail-gpg gem

我必须加密电子邮件的附件。我通过 Mandrill 客户端 (mandrillapp.com) 发送电子邮件。 Gem 我用来加密附件的是邮件 gpg (https://github.com/jkraemer/mail-gpg) 控制台日志中没有错误。我收到了电子邮件,但 email/attachment 未加密。 你知道我的应用程序出了什么问题吗? 我的代码:

def self.mailing(atr1, atr2)
  key = '-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1.4.12 (GNU/Linux)
mQGiBEk39msRBADw1ExmrLD1OUMdfvA7cnVVYTC7CyqfNvHUVuuBDhV7azs ....
-----END PGP PUBLIC KEY BLOCK----- ' 

  mandrill = Mandrill::API.new 'YYYYYYYYYYYYYYYYYYYYYYYYYYY'

  time = Time.now.strftime("%Y%m%d")
  message = {
                from_email: 'test@test.pl',
                subject: "WWWWWWWWWWWWWW",
                to: [{
                  email: App.settings.webservices[atr1]['email'],
                  type: "to"
                  },
                  {
                  email: App.settings.webservices[atr1]['email_bcc'],
                  type: "bcc"
                  }
                  ],
                attachments: [{
                    content: Base64.encode64(build_csv(atr2)),
                    name: "my_name" ,
                    type: 'text/csv',
                    gpg: { encrypt: true }# , keys: { App.settings.webservices['ggggg']['email'] => key} }
                  }],
                  # gpg: { encrypt: true, keys: { App.settings.webservices['ggggg']['email_bcc']} }
                }
  result = mandrill.messages.send message
  result.first.with_indifferent_access   
end

感谢您的帮助

Mail-gpg 扩展了 Mail gem,因此它可以发送 Pgp/Mime 加密邮件。

不支持仅加密附件。加密整个邮件 as documented 或在将附件附加到您的电子邮件之前手动加密附件(即使用 gpgme gem)。

因此,如果有的话,将散列的消息(顶层)级别的 gpg 选项传递给 Mandrill gem(前提是它以某种方式做正确的事情,我不知道)。如果失败,请自己构建 Mail::Message 并通过 Mandrill 的 Smtp 服务器发送。你不需要他们的gem。