2009-09-16 8 views
8

Używam biblioteki Ruby IMAP, aby uzyskać rozmowę w Gmailu. Sposób, w jaki wątki są wątkami Gmaila, odbywa się za pośrednictwem nagłówków wiadomości "Message-ID" i "In-Reply-To". Na przykład:Nawiązywanie wątków w Gmailu, IMAP i Ruby

In-Reply-To: <[email protected]> 
Message-ID: <[email protected]> 

Nie mogę wymyślić, jak skutecznie uzyskać odpowiedź na wiadomość. Obecny sposób:

target = <[email protected]> 
imap.search(["NOT", "DELETED"]).each do |msg_id| 
    uid = imap.fetch(message_id, "ENVELOPE")[0].attr["ENVELOPE"].message_id 
    if uid == target 
    m = imap.fetch(msg_id, "RFC822")[0].attr["RFC822"] 
    end 
end 

To zajmuje bardzo dużo czasu, aby to zrobić kolejno tak, ale nie mogę dowiedzieć się prawidłową inkantację wyszukiwania przez nagłówku Message-ID, i nie mogę znaleźć wszelkie dowody, czy jest to możliwe, czy nie.

Odpowiedz

10

Najwyraźniej poprawny sposób to zrobić:

imap.search ["HEADER", "MESSAGE-ID", target]