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

Mat*_*usz 4 ruby

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

我收到邮件:

data = imap.uid_fetch(1, "BODY[]")
Run Code Online (Sandbox Code Playgroud)

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

mail = Mail.read(data.to_s)
Run Code Online (Sandbox Code Playgroud)

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

有任何想法吗?

Sim*_*tti 8

Mail.read想要一个文件名.用于从电子邮件源Mail.new初始化Mail对象.

另外,抓取RFC822,而不是BODY[].

mail = Mail.new(imap.uid_fetch(1, "RFC822")[0].attr["RFC822"])
Run Code Online (Sandbox Code Playgroud)