@@ -32,18 +32,18 @@ def from_mail(mail, list, list_seq)
3232 message_id = mail . message_id &.encode Encoding ::UTF_8 , invalid : :replace , undef : :replace
3333
3434 # mail.in_reply_to returns strange Array object in some cases (?), so let's use the raw value
35- parent_message_id = extract_message_id_from_in_reply_to ( mail . header [ :in_reply_to ] &.value )
36- parent_message = Message . find_by message_id_header : parent_message_id if parent_message_id
37- if !parent_message && ( String === mail . references )
38- parent_message = Message . find_by message_id_header : mail . references
35+ parent_message_id_header = extract_message_id_from_in_reply_to ( mail . header [ :in_reply_to ] &.value )
36+ parent_message_id = Message . where ( message_id_header : parent_message_id_header ) . pick ( :id ) if parent_message_id_header
37+ if !parent_message_id && ( String === mail . references )
38+ parent_message_id = Message . where ( message_id_header : mail . references ) . pick ( :id )
3939 end
40- if !parent_message && ( Array === mail . references )
40+ if !parent_message_id && ( Array === mail . references )
4141 mail . references . compact . each do |ref |
42- break if ( parent_message = Message . find_by message_id_header : ref )
42+ break if ( parent_message_id = Message . where ( message_id_header : ref ) . pick ( :id ) )
4343 end
4444 end
4545
46- new list_id : list . id , list_seq : list_seq , body : body , subject : subject , from : from , published_at : mail . date , message_id_header : message_id , parent_id : parent_message &. id
46+ new list_id : list . id , list_seq : list_seq , body : body , subject : subject , from : from , published_at : mail . date , message_id_header : message_id , parent_id : parent_message_id
4747 end
4848
4949 private def extract_message_id_from_in_reply_to ( header )
0 commit comments