我正在使用以下规则转发电子邮件.procmailrc
# in .procmailrc
* ^Subject.*something
! [email protected]
过滤和转发部分按预期工作。但是,[电子邮件保护]发件人是我的本地电子邮件地址。我想保留原始发件人,这样任何回复都会发给原始发件人,而不是我的本地地址。有什么办法吗?
答案1
这似乎对多个帐户造成了混淆。转发根本不会触及标头,并且来自符合 RFC 的客户端的任何回复都应发送给标头中指示的发件人。
更详细地说,Reply-To:
标题是决定回复应该发往何处的主要因素(尽管有些电子邮件客户端会谨慎地忽略这一标准,咳嗽外表咳嗽);其次,在这种情况下,“发件人”通常是指From:
Procmail 根本不会修改的标头。第三,还有标Sender:
头,它在某些旧客户端中用于指示From:
标头不是真正的发件人;某些客户端将其显示为“代表”。同样,当您转发消息时,Procmail 不会修改它。
最后,还有信封发件人,Return-Path:
大多数投递客户端会在投递时将其复制到标题中。这一项在转发时会更改。在某些情况下,您可以将其改回,但您应该了解技术后果。
基本上,信封发件人仅用于标识将退回邮件发送到何处。因此,如果您转发邮件并更改信封发件人,并且转发如果操作失败,退回邮件将被发回给原始邮件发件人。他们无法控制您的转发安排,因此无法排除故障或修复此错误。换句话说,您基本上是在让他们收到一些反弹垃圾邮件。
话虽如此,如果你真的想,你可以。以下内容假设您有信封发件人,Return-Path:
并且系统配置允许您使用覆盖信封发件人sendmail -f
。这在技术上是电子邮件伪造,因此一些网站完全禁用此选项,而其他一些网站只允许一小部分特权帐户使用它。
:0
* ^Return-Path:[ ]*<?\/[^<>]+
! -f "$MATCH" [email protected]
MATCH
(从技术上讲,您可以在转发配方之前将捕获拆分开并将其重构为单独的配方。...[
里面的空格]
由一个空格和一个制表符组成,但 Server Fault 会将其呈现为一系列空格,因此您不能直接从这里复制/粘贴它。)