从“全能”/通配符电子邮件地址中检索电子邮件


2

我将自己域名的整个电子邮件系统从GMail迁移到另一个提供商,仍使用我的域名。在新系统中,并非所有原始GMail系统的电子邮件地址都已重新创建。我设置了一个“全能”/通配符电子邮件(用于发送到不存在的电子邮件地址的电子邮件),它运行良好。

大约一周后,我在新系统中重新创建了一些最初在GMail系统中的电子邮件地址。这些电子邮件地址缺少在一周内发送给他们的电子邮件,所有这些丢失的电子邮件都位于我拥有网络,IMAP和POP3访问权限的“全包”/通配符邮箱中。

如何从“全能”/通配符邮箱中提取丢失的电子邮件,并将其复制或转发到原定的邮箱?我想要一个使用程序的自动化流程,在该程序中我提供目标电子邮件地址和任何其他相关参数。

我在新系统中没有root访问权限。我拥有与“Google For Your Domain”管理面板相同的访问权限,还有一个用于通过外部程序执行各种功能的API。

以下是来自两个测试电子邮件的标头,以及来自同一域内其他电子邮件的不存在的电子邮件地址。


电子邮件1

Received: from mxback2j.mail.yandex.net ([127.0.0.1])
    by mxback2j.mail.yandex.net with LMTP id 5X48SyJk
    for <fakeemail1@mydomainname.com>; Mon, 10 Aug 2015 12:39:49 +0300
Received: from web19j.yandex.ru (web19j.yandex.ru [2a02:6b8:0:1619::319])
    by mxback2j.mail.yandex.net (nwsmtp/Yandex) with ESMTP id nJ7ByEVW6U-dn5ewS0i;
    Mon, 10 Aug 2015 12:39:49 +0300
X-Yandex-Front: mxback2j.mail.yandex.net
X-Yandex-TimeMark: 1439199589
Authentication-Results: mxback2j.mail.yandex.net; dkim=pass header.i=@mydomainname.com
Received: from 127.0.0.1 (localhost [127.0.0.1])
    by web19j.yandex.ru (Yandex) with ESMTP id 51EE419404BF;
    Mon, 10 Aug 2015 12:39:49 +0300 (MSK)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mydomainname.com;
    s=mail; t=1439199589;
    bh=yGsBXgbrF2nr8eQFWxTXC6fTX8Rm0yym2ZrODvEqvT0=;
    h=From:To:Subject:Date;
    b=rV4mcTxUHD+DZZUfOPzlFQAtMJsXOPy5x2wL9p6IIjOCqJBIN62LIwrfGOwh70+MN
     vzZoiNNeQmHv9ifAGw50NQFYciO+QJyVRVL5THarz0sDaEIWndtDwc2lnFjQqqlKBS
     6JvPP2x9A6pXr/ek1JSQM0FtfEvKeSlM27mBAl8E=
X-Yandex-Spam: 1
X-Yandex-Front: web19j.yandex.ru
X-Yandex-TimeMark: 1439199589
Received: by web19j.yandex.ru with HTTP;
    Mon, 10 Aug 2015 12:39:49 +0300
From: Admin <admin@mydomainname.com>
To: fakeemail1@mydomainname.com
Subject: Test
MIME-Version: 1.0
Message-Id: <887321439199589@web19j.yandex.ru>
X-Mailer: Yamail [ http://yandex.ru ] 5.0
Date: Mon, 10 Aug 2015 11:39:49 +0200
Content-Transfer-Encoding: 7bit
Content-Type: text/html
Return-Path: admin@mydomainname.com
X-Yandex-Forward: 96c95557c105a7cf33717bc08474a8bc
测试。

电子邮件2

Received: from mxback2j.mail.yandex.net ([127.0.0.1])
    by mxback2j.mail.yandex.net with LMTP id hZsI1hDZ;
    Mon, 10 Aug 2015 12:40:38 +0300
Received: from web19j.yandex.ru (web19j.yandex.ru [5.45.198.60])
    by mxback2j.mail.yandex.net (nwsmtp/Yandex) with ESMTP id VCUXOJBY0S-ec5qR18F;
    Mon, 10 Aug 2015 12:40:38 +0300
X-Yandex-Front: mxback2j.mail.yandex.net
X-Yandex-TimeMark: 1439199638
Authentication-Results: mxback2j.mail.yandex.net; dkim=pass header.i=@mydomainname.com
Received: from 127.0.0.1 (localhost [127.0.0.1])
    by web19j.yandex.ru (Yandex) with ESMTP id 81F1F19404D7;
    Mon, 10 Aug 2015 12:40:37 +0300 (MSK)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mydomainname.com;
    s=mail; t=1439199637;
    bh=yGsBXgbrF2nr8eQFWxTXC6fTX8Rm0yym2ZrODvEqvT0=;
    h=From:To:Cc:Subject:Date;
    b=lNQ/5a+qhQt2Wwuv6mVzzuuQX6zd+g0BlXUj/sreLPoqwW2UI1jQuzurfaJuOaiAu
     RzoAS59RuaQzuvce2/SA6a8IeephZpbZO0wj0MoP8ZmPbGCD2OI5pLMr2PgjFHSDrZ
     nOmgUAUmmA71C5HMRHdtjCeVfgFOlMoTP2B/uPL8=
X-Yandex-Spam: 1
X-Yandex-Front: web19j.yandex.ru
X-Yandex-TimeMark: 1439199637
Received: by web19j.yandex.ru with HTTP;
    Mon, 10 Aug 2015 12:40:37 +0300
From: Admin <admin@mydomainname.com>
To: fakeemail2@mydomainname.com
Cc: fakeemail3@mydomainname.com,
    fakeemail4@mydomainname.com
Subject: Test
MIME-Version: 1.0
Message-Id: <891911439199637@web19j.yandex.ru>
X-Mailer: Yamail [ http://yandex.ru ] 5.0
Date: Mon, 10 Aug 2015 11:40:37 +0200
Content-Transfer-Encoding: 7bit
Content-Type: text/html
Return-Path: admin@mydomainname.com
X-Yandex-Forward: 96c95557c105a7cf33717bc08474a8bc
测试。

您能为您的域名命名新的MTA / SMTP和IMAP / POP服务器软件吗?它可以减少所需的猜测。这个特定的catch-all实现是否存储了所有原始收件人地址?
AnFi 2015年

Yandex Mail(imap.yandex.com/pop.yandex.com)。Catch-all邮箱仅存储“退回”电子邮件(即发送到不存在的电子邮件地址的电子邮件)。
Lethalmiko 2015年

你能发送两条测试消息给1和2-3个不存在的电子邮件地址服务是收到的消息的catch-all和post标头?基于To:CC:标题的收件人检测(如Rick的答案所示)可能有时会产生误导。通常“单个收件人”消息包含有价值的提示。
AnFi 2015年

在原始问题中添加了邮件标题。
Lethalmiko 2015年

在您的情况下:for X在最新/最顶部的received:标题是最佳收件人指示符,但它仅适用于单个收件人邮件。
2015年

Answers:


1

我过去这样做的时候就是我在剧本中采用的方法:

  1. 建立与服务器的IMAP连接并登录。
  2. 使用IMAP SEARCH(SINCE DD-MM-YYYY)(在DD-MM-YYYY之前)命令获取消息列表。
  3. 读入缺少邮件的收件人列表
  4. 对于每个消息,获取To:和Cc:收件人并检查列表
  5. 对于每个匹配的收件人,将邮件的副本转发为MIME msg / rfc822附件。

如果你愿意,我可以发布一个链接到我的forward_missing_messages脚本(它是用Perl编写的)它的价值。

-Rick


是的,请将链接发布到您的脚本Rick并感谢您的回复。在进行IMAP连接后,脚本是否更容易在收件箱中为发送到特定电子邮件地址的所有电子邮件运行搜索?然后它可以简单地将这些转发到相同的指定电子邮件地址。除非我误解。
Lethalmiko 2015年

你是对的,Lethalmiko,这更简单。我已经修改了forward_missing_messages脚本来采用这种方法。您可以从www.athensfbc.com/public/forward_missing_messages.tar下载。tar文件包含一个README,它描述了如何将参数传递给脚本。
Rick Sanders 2015年

非常感谢瑞克。将尝试你的脚本并还原。
Lethalmiko 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.