2012-09-04 33 views
3

我的程序處理的是到達作爲文件(something.eml)的電子郵件。在某些情況下,我需要修改附件,然後重新保存文件。我一直在使用說明書here作爲我的代碼基礎,但有一個爲想要做究竟想要什麼,我沒有建議。我下面的代碼已成功刪除原始附件,然後嘗試添加一個新的附件。如何使用Rails郵件寶石替換電子郵件中的附件?

@email.without_attachments! 
@email.add_file(amended_version) 

不幸的是它在兩個地方出錯了。首先,它似乎刪除所有的MIME部分,而不僅僅是附件。任何文本/平面部分也會被丟棄。其次,如果我通過重新加載修改後的.eml文件來測試,儘管存在於文件中,附件不再被識別。

我已經包含了gist,其中包括從我目前的方法原始和修正文件。

有沒有更好的方法來做到這一點?也許是直接替換附件的一種方式,而不是去除它並再次添加?

回答

3

我不知道有足夠的瞭解郵件格式知道爲什麼這個作品,但它確實。

我只是提取我​​感興趣的從without_attachments!方法的行,它現在似乎很好地工作。消息的非附件部分保持不變,並且消息重新讀取正常。現在的代碼讀取....

@email.parts.delete_if { |p| p.attachment? } 
@email.add_file(amended_version)