Ruby:邮件 gem 在邮件中的 60 个字符后添加\r\n

标签 ruby ruby-on-rails-3 email gem actionmailer

我要移植actionmailer_x509到 Rails 3。为了做到这一点,我尝试从带有签名电子邮件的大字符串创建 Mail 对象。

您可以在这一行看到这样的创建:https://github.com/petRUShka/actionmailer_x509/blob/master/lib/actionmailer_x509.rb#L129

原始字符串 (smime0):https://gist.github.com/1d2c84cc2e255be010a6

结果邮件对象转储到文件(newm):https://gist.github.com/4682fe88e8dcfeca60b2

例如,您可以看到 smime0 的第 26 行和 newm 的第 40 行之间的区别。在 smime0 \r\n 中每 64 个字符设置一次,在 newm \r\n 中设置一次每 60 个字符后。

这种行为破坏了签名。是否可以改变这种行为?我试图找出如何关闭它,但失败了。

对于这一点可能还有一些其他的解决方法。

附言邮件 gem :https://github.com/mikel/mail ,关于 x509 和 actionmailer 的讨论线程:How do I send signed emails from ActionMailer in Rails 3?

最佳答案

回车应该不是问题,因为解析器会知道它是 base64 编码的(并且会丢弃 \r\n)。

我认为错误来自 Content-id .我看到在您的邮件示例中,newm 添加了一个 Content-ID 字段,并且它更改了签名邮件(尝试删除 Content-ID 行并验证邮件)。

可能的解决方法:

  • 修复 Mail gem 以防止它添加 Content-ID
  • 在签名前添加一个 Content-ID,因为如果它存在,Mail 会保留它

关于Ruby:邮件 gem 在邮件中的 60 个字符后添加\r\n,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6663409/

相关文章:

mysql - 使用 PostgreSQL 进行全文搜索是否需要 thinking-sphinx?

javascript - JQuery对象通过ajax向PHP发送邮件()

php - 如何在 PHP 电子邮件中插入超链接?

ios - 通过电子邮件 ios 发送对象和应用程序链接

ruby - 不包括在阵列中的液体过滤器?

ruby-on-rails-3 - 执行 Rails Assets :precompile? 时如何运行一些初始化程序

ruby - 在 ruby​​ 脚本中执行 cd 命令

ruby-on-rails - rails 3.0 : error with routes when overriding to_param in model

css - 在 Rails 中使用 sass 的正确方法

ruby - 如何通过中间人扩展访问变量?