邮件的附件加密通过mail-gpg gem

时间:2015-10-22 11:57:45

标签: ruby-on-rails ruby encryption sinatra mandrill

我必须加密我的电子邮件附件。我通过Mandrill Client(mandrillapp.com)发送电子邮件。 我用来加密我的附件的宝石是邮件gpg(https://github.com/jkraemer/mail-gpg) 控制台日志中没有错误。电子邮件即将发送给我,但电子邮件/附件未加密。 你有什么想法在我的应用程序中有什么问题吗? 我的代码:

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

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

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

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

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