通过 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 发送电子邮件?