当 Gmail 将电子邮件转发到外部地址时,它显然会将转发的地址插入到发件人行中。因此,转发到[电子邮件保护]经过[电子邮件保护]变成:
[email protected]
我在 procmail 中匹配此结果 FROM 地址时遇到问题。我尝试了这些匹配模式,但没有成功:
:0
* ^From:.*username\[email protected]
/dev/null
:0
* ^From:.*username.*@gmail.com
/dev/null
第二个模式应该匹配 username 和 @gmail.com 之间的任何内容,但它的失败让我认为 procmail 在处理要搜索的 FROM 字符串时遇到了麻烦,而问题根本不在于匹配模式。请注意,procmail 日志可以毫无问题地查看和报告修改后的 FROM 地址,就像它对任何与模式不匹配的电子邮件所做的那样。
关于如何匹配这些类型的转发 Gmail 地址,您有什么想法吗?谢谢。
以下是该电子邮件的缩写标题:
From [email protected] Sat Nov 10 11:26:24 2018
X-Received: by 2002:a2e:1241:: with SMTP id --;
Sat, 10 Nov 2018 11:25:20 -0800 (PST)
X-Forwarded-To: [email protected]
X-Forwarded-For: [email protected] [email protected]
Delivered-To: [email protected]
X-Google-Smtp-Source: --
X-Received: by 2002:ac8:7598:: with SMTP id s24mr13601716qtq.6.1541877918711;
Sat, 10 Nov 2018 11:25:18 -0800 (PST)
From: someuser <[email protected]>
Date: Sat, 10 Nov 2018 14:24:59 -0500
To: [email protected]
Subject: TEXT
User-Agent: Heirloom mailx 12.4 7/29/08
答案1
感谢大家的评论。发布完整标头的建议让我找到了这个问题的解决方案。从标头中可以看到,执行转发的 gmail 帐户列为:
From [email protected] Sat Nov 10 11:26:24 2018
这是出现在 procmail 日志中的一行,最初让我很困惑。请注意,我最初的匹配模式正在搜索:
:0
* ^From:.*username\[email protected]
/dev/null
看起来“FROM”和转发的电子邮件地址之间没有冒号。另一方面,标头后面指定原始发件人的行符合冒号语法,如下所示:
From: someuser <[email protected]>
因此,要捕获转发的消息,您需要匹配不带冒号的转发电子邮件帐户,如下所示:
:0
* ^From.*username\[email protected]
/dev/null
或者将原始发件人与冒号匹配,如下所示:
:0
* ^From:.*[email protected]
/dev/null
再次感谢您的帮助!