2011-05-05 253 views
4

我通過使用Net::IMAP庫提取的電子郵件傳遞有問題Mail對象使用mikel/mail寶石定義。Write Net :: IMAP電子郵件到mikel /郵件電子郵件

我得到的郵件:

data = imap.uid_fetch(1, "BODY[]") 

,但我應該怎麼後來把它變成Mail.read慣例?

mail = Mail.read(data.to_s) 

似乎得到Errno::ENAMETOOLONG: File name too long。它將郵件正文理解爲文件名。

任何想法?

回答

8

Mail.read想要一個文件名。使用Mail.new從電子郵件源初始化一個Mail對象。

另外,獲取RFC822而不是BODY[]

mail = Mail.new(imap.uid_fetch(1, "RFC822")[0].attr["RFC822"]) 
+0

太棒了!我愚蠢,我沒有嘗試Mail.new;)謝謝。順便說一句,你的答案有錯字,但我無法編輯。 – Mateusz 2011-05-06 11:11:46

+0

什麼是錯字? – 2011-05-06 11:57:20

+0

Shuldn​​'t它是「...使用'Mail.new'來...」? – Mateusz 2011-05-06 13:05:33