【问题标题】:whats algorithm of Exim message ID [closed]Exim消息ID的算法是什么[关闭]
【发布时间】:2015-03-02 20:51:21
【问题描述】:

我想知道 Exim 中的消息 ID 如何生成。 例如:1YSWPk-0000oX-0N

还有标题中的消息 ID

Message-ID: <aa1e23e76be8b95bc21718a4c4e000fc@example.com>

并且可以解码这些? 以及与这些和其他电子邮件标题的任何关系?

【问题讨论】:

  • 您是否尝试过亲自查看source code
  • @MarkoŽivanović:我没有任何分析代码和解码的知识。
  • 好的,在这种情况下,根据What topics can I ask about here?guides,这可能不适合您提出问题。
  • Message-id 是在哪个文件中生成的?请发送此文件名和行。

标签: email-headers exim exim4


【解决方案1】:

Exim 的规范第 3.4 部分说

消息 id 的前六个字符是 消息开始接收,粒度为一秒。那 即,该字段包含从开始的秒数 epoch(表示一天中的日期和时间的正常 Unix 方式)。

在第一个连字符之后,接下来的六个字符是 收到消息的进程。

最后两个字符有两种不同的可能性:

如果 localhost_number 没有设置,这个值是小数部分 接收时间,通常以 1/2000 秒为单位,但 对于必须使用基数 36 而不是基数 62 的系统(因为 不区分大小写的文件系统),单位是 1/1000 秒。

如果设置了 localhost_number,则乘以 200 (100) 并添加到 时间的小数部分,在这种情况下以 1/200 (1/100) 秒。

这里是从我的exim 发送到gmail.com 的邮件标题。 第 19-27 行是由我的 MTA/exim 生成的,而上面的所有行都是由gmail 服务器生成的。

 1  Delivered-To: kondybas@gmail.com
 2  Received: by 10.27.143.12 with SMTP id r12csp943315wld;
 3          Tue, 3 Mar 2015 12:49:41 -0800 (PST)
 4  X-Received: by 10.180.126.69 with SMTP id mw5mr50725522wib.12.1425415780590;
 5          Tue, 03 Mar 2015 12:49:40 -0800 (PST)
 6  Return-Path: <root@domain.tld>
 7  Received: from domain.tld (relay.domain.tld. [11.22.33.44])
 8          by mx.google.com with ESMTPS id y2si3224153wjy.199.2015.03.03.12.49.40
 9          for <kondybas@gmail.com>
10          (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
11          Tue, 03 Mar 2015 12:49:40 -0800 (PST)
12  Received-SPF: pass (google.com: domain of root@domain.tld designates 11.22.33.44 as permitted sender) client-ip=11.22.33.44;
13  Authentication-Results: mx.google.com;
14         spf=pass (google.com: domain of root@domain.tld designates 11.22.33.44 as permitted sender) smtp.mail=root@domain.tld;
15         dkim=pass header.i=@domain.tld
16  DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=domain.tld; s=s;
17          h=Date:From:Message-Id:Subject:To; bh=g3zLYH4xKxcPrHOD18z9YfpQcnk/GaJedfustWU5uGs=;
18          b=p7JbGnGFvxdvL0UESIprvXTXq1GcQTeWZOTy3nrTOynwqHz9JEKQu+nqNU6iZtC7LxmPBbOFXjy3Qbg9vH3BLdaqivk/duFSUoYenFQgQd/iaoZ8sBP3lWXx/Uz6yIy7zH2ySOZO5M/NKfG2QqZsJ8PCChJ01mCSe6bqHfcywbrAi2ZJWws3Kt3lAGIxHkdOjhcCsljrirGCCeYc8WI8PQ==;
19  Received: from root by domain.tld with local (Exim 4.85 (FreeBSD))
20          (envelope-from <root@domain.tld>)
21          id 1YStl5-00010z-JV
22          for kondybas@gmail.com; Tue, 03 Mar 2015 22:49:39 +0200
23  To: kondybas@gmail.com
24  Subject: test
25  Message-Id: <E1YStl5-00010z-JV@domain.tld>
26  From: Charlie Root <root@domain.tld>
27  Date: Tue, 03 Mar 2015 22:49:39 +0200

【讨论】:

  • 谢谢,以及如何生成 Message-ID:
  • 该 ID 是由托管在 example.com 上的软件生成的。我不确定,但对我来说它看起来像一个 MD5 哈希。
  • true,这是 MD5 哈希,但是 MD5 的变量是什么?时间戳? Exim 中的任何文档或代码?
  • 我已经用我的exim 和 - 例如 - googlemail 生成的真实标题更新了我的答案,所以你可以看到它们有什么不同。第 2、4 和 8 行表明,除 exim 之外的 MTA 可以以不可预知的形式生成消息 ID。而且你无法控制这种行为。
猜你喜欢
  • 1970-01-01
  • 2018-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-13
  • 2012-06-21
  • 2018-07-26
  • 1970-01-01
相关资源
最近更新 更多