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] => [email protected]
[message_id] =>
[from] => [email protected]
[sender] => [email protected]
[reply_toaddress] => [email protected]
[size] => 14385
[msgno] => 156
[status] => Unread
Thanks
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.