我正在尝试使用Ruby中的Net :: IMAP来搜索我发送的所有邮件,但是我在选择除了INBOX以外的任何东西时遇到了麻烦.
imap.select('INBOX')
Run Code Online (Sandbox Code Playgroud)
工作正常,但是
imap.select('Mail/sent-mail')
Run Code Online (Sandbox Code Playgroud)
如在Net :: IMAP文档中显示给我"未知邮箱".
顺便说一下,这将与gmail一起使用.
我也试过在我的imap.search()中添加"in","anywhere",但是没有解析.
当前代码:
imap.select('INBOX')
now = Time.now.localtime - 1209600 #two weeks
since = now.day.to_s() + "-" + Date::MONTHNAMES[now.month] + "-" + now.year.to_s()
puts "since"
puts since
begin
mail_ids = imap.search(["FROM", "me", "SINCE", since])
mail_ids.each do |id|
text = imap.fetch(id, 'BODY[HEADER.FIELDS (SUBJECT)]').to_s.split("{").second.chop
puts text
end
end
Run Code Online (Sandbox Code Playgroud)
dka*_*arp 34
"已发送邮件"文件夹因提供商而异.Gmail的"已发送邮件"文件夹名为" [Gmail]/Sent Mail
".选择它,它会工作.
imap.select('[Gmail]/Sent Mail')
Run Code Online (Sandbox Code Playgroud)
仅供参考,Gmail的系统文件夹如下:
INBOX
[Gmail]/All Mail
[Gmail]/Drafts
[Gmail]/Sent Mail
[Gmail]/Spam
[Gmail]/Starred
[Gmail]/Trash
小智 10
您可以使用以下命令查找所有文件夹的名称:
imap.list('*', '*')
Run Code Online (Sandbox Code Playgroud)
Gmail文件夹名称将根据用户选择的语言而更改.所以以西班牙语为例:
"[Gmail] /全部"邮件将是"[Gmail]/Todos"