我正在使用Watir进行自动化,这会创建一个我需要检查的电子邮件。我被指向电子邮件gem是最简单的方法。
我添加了以下代码,并且能够从我的收件箱中收到第一封电子邮件。
require 'mail'
require 'openssl'
Mail.defaults do
retriever_method :pop3, :address => "email.someemail.com",
:port => 995,
:user_name => 'domain/username',
:password => 'pwd',
:enable_ssl => true
end
puts Mail.first
我是这个论坛的新手并且有以下问题:
如何获取所有未读的电子邮件?我尝试了Mail.all
,Mail.first
,Mail.last
,但没有回复未读电子邮件。
如何获取电子邮件中存在的所有链接?或者从特定电子邮件发送邮件正文?我需要获取第一封未读电子邮件的电子邮件正文。
如果我的收件箱中有子文件夹,如何从特定文件夹收到电子邮件?
答案 0 :(得分:13)
部分6.4.4 of the IMAP protocol表示可用于搜索邮件的不同搜索标记。
您可以通过将搜索标志传递给find方法来检索新邮件,如下所示:
new_messages = Mail.find(keys: ['NOT','SEEN'])
此消息也在issue on the Mail GitHub repo中回答。
答案 1 :(得分:1)
看起来你读了一些documentation。 Mail.all返回所有电子邮件,包括阅读电子邮件。 Mail.first返回第一个未读的。我想这样做会再次返回未读的。如果您的系统受到控制,您不必担心这么多未读电子邮件。如果我是你,我会在IRB中试一试,直到你掌握它,甚至可以建立一个让你更容易使用的类。祝你好运。
更新:来自Mail gem的文档。如果Mail.first没有返回未读的电子邮件(所有时间),那么作者应该知道。你可以提交一个问题。我自己不用那个宝石。我使用gmail gem进行测试。
Mail.all #=> Returns an array of all emails
Mail.first #=> Returns the first unread email
Mail.last #=> Returns the first unread email
答案 2 :(得分:0)
如何节省阅读邮件的时间,然后下次当您在该日期之后阅读所有邮件处理邮件时?我知道它是一种解决方法,但我相信它不受邮件宝石的支持。 Mailman gem确实支持它,但是一旦你处理它就会删除它。