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

Posted

技术标签:

【中文标题】通过 mail-gpg gem 的邮件附件加密【英文标题】:Mail's attachment encryption via mail-gpg gem 【发布时间】:2016-01-21 16:47:10 【问题描述】:

我必须加密我的电子邮件附件。我通过 Mandrill Client(mandrillapp.com) 发送电子邮件。 我用来加密附件的 Gem 是 mail 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

感谢您的帮助

【问题讨论】:

您只想加密附件而不是整个邮件? 哪个宝石确切地? Mandrill 说要使用 Mailchimp 宝石。 我使用的 gem 叫做 'mandrill-api'。我也尝试加密整个电子邮件,但结果是一样的。 mail-gpg 加密无效 【参考方案1】:

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

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

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

【讨论】:

正如您在附件中看到的那样,我尝试加密整个邮件,但它不起作用,我很惊讶,因为我已经完成了文档中的所有内容,但我进入 gmail 的邮件没有加密。正如你所说,我尝试通过 gpgme 对其进行加密。 我在您的代码中没有看到您如何尝试执行记录的操作 - 您只需构建一个 Hash 并将其交给 mandrill 库。我猜这个库根本不知道关于 mail-gpg 的任何事情,只是忽略了你的 gpg 哈希键,无论你把它们放在哪里。正如我之前所写,解决这个问题的简单方法是使用 Mail gem API 并通过 SMTP 发送电子邮件。 如你所说,我将使用 gpgme gem 从外部对其进行加密。我认为 mail-gem 可以与 mandrill 一起使用,因为据我所知 mandrill 使用 ActionMailer。谢谢你的帮助!!

以上是关于通过 mail-gpg gem 的邮件附件加密的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Ruby 的邮件 gem 通过 smtp 发送电子邮件?

通过邮件 gem 发送 smtp 电子邮件会导致 554 5.7.0 Reject

使用 S/MIME (PHP) 发送带有附件的电子邮件

pgp如何打开

给大伙推荐一款全自动加密软件-密信MeSince

在php上通过邮件发送长名称附件