php 发送的电子邮件中的 Message-Id 有什么问题

2022-08-30 20:59:42

我有可疑的邮件ID标题由php发送到gmail帐户的电子邮件:

Message-Id: <5100054f.a489440a.5d93.6a70SMTPIN_ADDED_MISSING@mx.google.com>

你能说说它有这种奇怪的格式吗?SMTPIN_ADDED_MISSING在这里意味着什么?我在互联网上看到的示例具有类似这样的格式,其中包含发送域,但由于某种原因,我的消息ID不包含它:

38D1C1FD-3C35-4568-925C-FC46CAC0DE8A@sendinghost.com

我不认为我在Zend_Mail设置了这个标题。生成此标头的因素是什么?您是否发现此标头存在任何问题?


答案 1

发送电子邮件时,应生成正确的出站电子邮件客户端。Google是“好”的,当邮件通过其电子邮件系统时,它会为您生成它,但大多数不会,大多数垃圾邮件过滤器会将此丢失的标头视为该邮件更有可能是垃圾邮件的指示。任何格式不正确或缺失的标头都会增加“垃圾邮件分数”。Message-ID

生成它并不难,所需要的只是它是每条消息唯一的:

$message-id = time() .'-' . md5($sender . $recipient) . '@' $_SERVER['SERVER_NAME'];

$message-id = time() .'-' . md5($sender . $recipient) . '@yourdomain.com';

给:

1358961017-677533f745f613447d06de25e7fa4d32@yourdomain.com

答案 2

如果缺少,谷歌SMTP会生成它。此标头必须由第一个 SMTP 服务器设置。所以你不会生成它 - 谷歌做。它用于防止多次传递并将相关消息链接在一起。

不需要设置邮件 ID 标头,但对于大多数(但不是全部,仅配置)smtp 来说,添加(可能是修复)此标头是一种很好的做法。因此,为了避免其他人生成此标头,您可以自己生成它。


推荐