我们刚刚收到了一封直接发送到论坛的电子邮件消息(显然是垃圾邮件)。奇怪的是,该私信的日期显示为 11 天前:
然而,该被标记为“待处理”的用户显示为今天创建(“加入 4 小时”):
有人知道这是怎么回事吗?
我希望 Discourse 不允许垃圾邮件发送者将消息日期回溯。消息的官方日期应该是其创建日期。
我们使用传入邮件的 Date 头来为帖子确定日期,而暂存用户则是在邮件被处理时创建的。一封日期为 11 天前但今天才被处理的邮件可能解释了这种不一致(可能……)。
我们会将未来的日期限制为当前时间,但会保留较早的日期。因此,是的,发件人可以提供一个较早的日期,不过我们需要检查这封邮件的头部信息来确认这里发生了什么。
你能检查一下原始邮件的 Date 和 Received 头吗?这应该有助于区分是发件人提供的较早日期还是延迟投递。你应该可以点击
按钮来查看相当多的详细信息。
我认为这就是你所需要的:
Received: from vps.f3host.com (vps.f3host.com [xxxxxxx])
by discourse-mail-receiver.localdomain (Postfix) with ESMTPS id xxxxxxxxxxxxx
for <support@ourdomain.net>; Thu, 17 Sep 2026 22:21:39 +0000 (UTC)
...
Date: Mon, 7 Sep 2026 01:01:36 +0100
所以它是在今天接收到的,但日期却是11天前。
我认为在界面上显示发件人在邮件头中填写的日期没有任何好处。由于直接发送的电子邮件经常是垃圾邮件,它们应该被赋予极少的控制权。伪造日期似乎只能出于恶意目的。
既然你们已经阻止了未来日期的显示,那么为什么我们不能直接使用帖子的创建日期作为帖子实际创建的日期呢?