【问题标题】:How do I send signed emails from ActionMailer in Rails 3?如何在 Rails 3 中从 ActionMailer 发送签名的电子邮件?
【发布时间】:2011-09-19 17:10:21
【问题描述】:

使用 Rails 3 我想使用 X.509 证书来签署部分电子邮件。在How do I send signed emails from ActionMailer? 上有一个当前存在的 Rails 2 答案,但它不适用于 Rails 3。

是否可以在 Rails 3 中通过 ActionMailer 签署电子邮件? 如果这不可行,是否可以在 ActionMailer 创建后通过 sendmail 签署电子邮件?

【问题讨论】:

  • 当您说“它在 Rails 3 上不起作用”时,您到底是什么意思 - 您看到了什么错误?该插件仅在 Rails 2.0.1 上进行了测试,但 github.com/penso/actionmailer_x509/blob/master/lib/… 中的代码应该仍然可以工作。
  • 我在vendor/plugins/actionmailer_x509/lib/actionmailer_x509.rb:80:in '<class:Base>' 收到这样的错误undefined method 'create!' for class 'ActionMailer::Base' (NameError)

标签: ruby-on-rails ruby email actionmailer x509


【解决方案1】:

也许这不是最好的答案,但我会这样做:

  • 尝试安装该插件(即使它适用于 rails 2.0.x)

  • 测试和修复代码直到我得到结果

看代码,原来核心文件是:

https://github.com/penso/actionmailer_x509/blob/master/lib/actionmailer_x509.rb

它为邮件 DSL 公开了一堆方法:

  • x509_sign true # or false
  • x509_cert "path/to/cert"
  • x509_key "路径/到/键"
  • x509_passphrase "密码"

这样您就可以获取该文件,并将其放在 $APP/lib 下,然后编写一些测试以检查它是否正常工作。

一个。

【讨论】:

  • 所有这些都不起作用 :( 我已将此插件移植到 Rails 3。问题是该插件即使在 2.0.1 下也不起作用:github.com/penso/actionmailer_x509/issues/2 :( 我会尝试在我的叉子中修复它:github.com/petRUShka/actionmailer_x509
  • 我知道这行不通。我所说的是修复该代码直到它工作。我还建议只获取主 lib 文件,因为它是该插件的核心。也许,您需要做的只是移植到新的 ActionMailer API
  • 我已经移植到新的 ActionMailer API。但可能是自 2008 年以来 openssl 发生了变化,因为 actionmailer_x509 测试套件中的主要测试现在已损坏(在我的 Rails 3 端口和带有 Rails 2.0.1 的新 rvm gemset 中)
  • 也许你用错了,X509 是一个标准。检查您是否已完成设置证书的所有必要步骤。
  • 我在移植时遇到了一些麻烦。与 Tmail gem 一起使用的原始方法不适用于新的 Mail gem。如果您能帮助我,那就太好了:stackoverflow.com/questions/6663409/…
【解决方案2】:

我已将 actionmailer_x509 移植到 Rails 3 并将其包装到 gem 中。所以现在它可以在这里工作了:https://github.com/petRUShka/actionmailer_x509

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-31
    • 2011-08-11
    • 1970-01-01
    • 1970-01-01
    • 2013-06-17
    • 2011-06-28
    • 1970-01-01
    相关资源
    最近更新 更多