PHP IMAP - 电子邮件必须有messageid吗?

vit*_*lyp 10 php imap gmail-imap

我正在使用PHP和IMAP从Gmail检索电子邮件; 但是,有些电子邮件没有messageid.是不是所有的消息都应该有一个messageid?

我需要一个唯一的ID作为参考,所以我不确定如何在没有它的情况下跟踪电子邮件.

难道我做错了什么?

例如,这是我得到的电子邮件标题

 [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
Run Code Online (Sandbox Code Playgroud)

谢谢

Mic*_*ski 8

我遇到过的任何MTA都会添加一个Message-ID(如果还没有).但是,如果您需要跟踪消息或线程化它们,则需要设置一个Message-ID.的References报头和所述In-Reply-To报头使用的先前的值Message-ID为涉及消息一起.

References包含Message-ID回复链中先前值的列表,并In-Reply-To包含Message-ID当前消息作为直接回复的列表.

请注意,根据RFC-2822规范,技术上不需要Message-ID.表现良好的MTA通常包含一个,但下面的一些评论者描述了不存在消息ID的情况,导致消息传递客户端出现故障.


Chr*_*isM 5

消息ID与IMAP无关,但它是邮件本身的一部分,并在RFC 2822中指定为"可选"(尽管它表示它应该存在):

虽然是可选的,但每条消息都应该有一个"Message-ID:"字段.

如果某些邮件缺少Message-ID,那么你没有做错任何事.对于所有邮件而言,最初发送邮件的MUA没有生成一封邮件(但是每个常用的MUA应该这样做).

关于通过IMAP识别邮件的唯一ID,您可能需要查看标准中描述的UID字段.