phpimapgmail-imap

Do emails have to have a messageid?


I'm retrieving emails from Gmail using PHP and IMAP; however, some emails don't have a messageid. Aren't all messages supposed to have a messageid?

I need a unique id for reference so i'm not sure how else to keep track of emails without it.

Am I doing something wrong? For example here is an email header I get

 [date] => Sun, 06 Nov 2011 21:21:56 -0500
    [subject] => Daylight Saving Time?  Chili's Saving Time!
    [to] => -------@gmail.com
    [message_id] => 
    [from] => ChilisCorp@---.com
    [sender] => ChilisCorp@----.com
    [reply_toaddress] => ChilisCorpeclubsupport@---.com
    [size] => 14385
    [msgno] =>  156
    [status] => Unread

Solution

  • Any MTA I have ever encountered will add a Message-ID if one is not already present. However, if you need to keep track of messages or thread them, you will need to set a the Message-ID. The References header and the In-Reply-To header use the value of a previous Message-ID to relate messages together.

    References contains a list of previous Message-ID values in the reply chain, and In-Reply-To contains the Message-ID to which the current message is a direct reply.

    Note that according to the RFC-2822 specification, a Message-ID is technically not required. Well-behaved MTAs generally include one, but some commenters below describe instances where a Message ID was not present, causing failures in messaging clients.