电子邮件日期错误/缺失

电子邮件日期错误/缺失

在典型的电子邮件设置中,当最终用户查看电子邮件的日期时,该日期是由发送服务器还是接收服务器提供的?

时不时地,我会收到投诉,说我们服务器发送的电子邮件上的日期是错误的(通常是 1900 年或 1969 年之类的数字,表明它只是显示默认日期)。我们系统上的所有日期都是正确的,而且绝对不会一直发生这种情况。我一直认为问题出在接收端。

谁能解释一下导致这种情况发生的原因?

答案1

在典型的电子邮件设置中,Date:标题由邮件客户端设置发送消息:这是撰写电子邮件的机器上的日期。Date如果缺少标头,服务器可能会在发送过程中添加标头(我认为服务器可能会为没有日期的电子邮件假定纪元)。

Received:邮件经过的每个服务器都会添加标题——验证这些标题上的日期以证明您的服务器具有正确的日期/时间。

答案2

我认为@vorateq7 已经给出了答案,但在相关说明中,我写的正是为什么日期如果没有日期标题则显示为 1969简短回答:默认值为 1970 年 1 月 1 日,但由于这是 UTC,因此 UTC 之后的使用时间最终会回到 1969 年。

答案3

从技术上讲,这是原始邮件客户端的责任,发送检查邮件以确保Date:创建了正确的标头。如果来自邮件服务器的某些邮件包含标头,而其他邮件不包含,这是因为它们是由不同的客户端发起的,其中一个客户端遗漏了标Date:头。

示例:您在网站上有一个联系表单,它使用 PHP 通过 SMTP 连接到您的 MTA 来发送消息。如果它不包含标Date:头,则您的 MTA 可能不会添加它(例如,qmail 不会修复它正在中继的损坏标头,因为它鼓励发送损坏消息的做法并为垃圾邮件发送者带来潜在的安全漏洞。)。

检查邮件的来源,看看哪些邮件没有标Date:头。显然,许多 Microsoft 邮件应用程序也都这样做。

相关内容