我如何得到rails和mail-gpg实际加密消息与actionmailer



我已经尝试了几天了,现在让Rails和mail-gpg实际加密电子邮件。我显然漏掉了什么。如有任何意见,不胜感激。

这是我的代码…

class ExampleMailer < ActionMailer::Base
  default from: "applerocks@gmail.com"
  def sample_email(to_email_address)
    applerocks_gmail_com_public_key = <<-END
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1
mQENBFXI/dEBCAC93lu3MnTTJx1mTy67t11...
=bSQdF5z+byVKbSb90ogG9XfPYA==...
... Removed for security
-----END PGP PUBLIC KEY BLOCK-----
END
    Mail.new do
      to 'applerocks@gmail.com'
      gpg encrypt: true, keys: { 'applerocks@gmail.com' => applerocks_gmail_com_public_key }
    end
    @to_email_address = to_email_address
    mail to: @to_email_address, subject: 'Sample Email', gpg: { encrypt: true, sign_as: 'applerocks@gmail.com', password: 'applerocks' }
  end
end

谢谢,克里斯

首先,您必须在applerocks_gmail_com_public_key中包含您的私钥,只需将其堆栈在公钥之后。

之后,您需要接收方证书,您可以通过以下方式获得:

hkp = Hkp.new
to_email_address_publ_key = hkp.search(to_email_address)
to_email_address_cert = hkp.fetch(to_email_address_publ_key[0][0])

删除这部分:

Mail.new do
  to 'applerocks@gmail.com'
  gpg encrypt: true, keys: { 'applerocks@gmail.com' => applerocks_gmail_com_public_key }
end

然后将结束部分改为:

mail to: to_email_address, subject: 'Sample Email', gpg: { encrypt: true, sign_as: 'applerocks@gmail.com', password: 'applerocks',keys: { 'applerocks@ gmail.com' => applerocks_gmail_com_public_key, to_email_address => to_email_address_cert}}

最新更新