2011-07-12 42 views
5

我想端口actionmailer_x509 Rails 3.爲了做到這一點,我嘗試從簽名電子郵件的大字符串創建郵件對象。紅寶石:郵件寶石添加 r n在郵件後60個字符

你可以看到在這條線這樣的創建: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行與的第40行之間的差異newm。在smime0\r\n在每個64個字符之後被設置,並且在newm\r\n被設置在每個60個字符之後。

這樣的行爲使得簽名。有沒有可能改變這種行爲?我試圖找出如何關閉它,但失敗了。

對於這一點可能還有其他一些解決方法。

P.S.郵件寶石:https://github.com/mikel/mail,螺紋有關X509和討論的ActionMailer:How do I send signed emails from ActionMailer in Rails 3?

回答

3

回車不應該是一個問題,因爲解析器會知道它的base64編碼(並會丟棄\r\n)。

我認爲錯誤來自Content-id。我發現在你的郵件示例中,newm添加了一個Content-ID字段,它會更改簽名的郵件(嘗試刪除Content-ID行並驗證郵件)。

可能的解決方法:

  • 修復郵件的寶石,以防止它添加一個Content-ID
  • 簽約前添加一個Content-ID,因爲郵件會保持它,如果它是目前
+0

這似乎是真的。我會查一下! – petRUShka