2014-04-16 128 views
1

我想通過IMAP只抓取來自Google郵件的回覆郵件。抓取gmail只回覆電子郵件

有一個標誌/已回答,但它似乎不工作。 有關紅寶石取郵件,我寫

imap_privider.fetch(1..15, ["BODY[HEADER.FIELDS (SUBJECT)]", "FLAGS"]) 

而且我得到了信的回覆(我知道肯定是回覆):

#<struct Net::IMAP::FetchData 
    seqno=14, 
    attr= 
    {"FLAGS"=>[:Seen], 
    "BODY[HEADER.FIELDS (SUBJECT)]"=>"Subject: RE: salut\r\n\r\n"}>, 

我認爲在ATTR它應該是[:回答]。

那麼我該怎麼做呢?

回答

1

您的留言14沒有回答,這是答案。看看它回答的消息,那就是你可能會找到\answered標誌的地方。

請注意,有些/許多客戶端並不打算設置\answered標誌。

另一種方法是檢索x-gm-thridenvelope並查看該線程。如果線程僅包含一條消息,則該消息尚未得到回答。如果它包含更多,則編號最大的消息尚未得到回答,並且您可能會認爲先前的消息具有。

+0

感謝您的回答。我會用x-gm-thrid和envelope來試試這個方法。但是當我提取所有郵件時,除了:Flagged和:Seen外,我沒有看到任何標誌。你不知道什麼是問題? –

+0

問題是,有關客戶不打擾\設置\回答。您必須使用x-gm-thrid hack或使用message-id和references字段進行完整的線程分析。 – arnt

+0

好的,非常感謝! –