将Net :: IMAP电子邮件写入mikel / mail email

时间:2011-05-05 21:08:52

标签: ruby

我将使用Net::IMAP库提取的电子邮件传递到使用Mail gem定义的mikel/mail对象时遇到问题。

我收到邮件:

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

但是我应该如何将它放入Mail.read约定?

mail = Mail.read(data.to_s)

似乎得到Errno::ENAMETOOLONG: File name too long。它将邮件正文理解为文件名。

有什么想法吗?

1 个答案:

答案 0 :(得分:8)

Mail.read想要一个文件名。使用Mail.new初始化电子邮件来源中的Mail对象。

此外,请抓取RFC822,而不是BODY[]

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