2009-09-16 4 views
8

Ruby IMAP 라이브러리를 사용하여 Gmail 대화를하고 있습니다. GMail 스레드 대화가 "Message-ID"및 "In-Reply-To"메시지 헤더를 통해 이루어지는 방식입니다. 예 :Gmail 스레딩, IMAP 및 Ruby

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

응답 된 메시지를 효율적으로받는 방법을 알 수 없습니다. 현재 방법 :

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 

그것은 그런 식으로 순차적으로 그것을 할 수있는 정말 시간이 오래 걸립니다,하지만 난 메시지-ID 헤더로 검색 할 수있는 올바른 주문을 알아낼 수 있고, 정말 찾을 수 없습니다 이것이 가능한지 아닌지에 대한 증거.

답변

10

분명히,이 작업을 수행하는 올바른 방법은 다음과 같습니다

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