将通过 fetchmail 获取的电子邮件转发/重定向到 gmail

将通过 fetchmail 获取的电子邮件转发/重定向到 gmail

我在 Mac 上使用终端。我正在尝试将电子邮件从工作电子邮件重定向到 gmail(工作电子邮件仅允许 IMAP,而 gmail 只能从 POP 获取 - 因此是解决方法)。

我已成功配置 fetchmail 以从工作电子邮件中获取邮件。

我现在想将其重定向到 gmail,这样当它到达时,它似乎是从(并且我可以回复)原来的发件人。

我已尝试使用以下配置的 procmail 和 ssmtp 。对于两者,电子邮件确实到达了我的 Gmail 收件箱,但它似乎来自我[电子邮件受保护]而不是原始发件人。

有什么建议吗?我有非常这是新的。欢迎使用 procmail 或 ssmtp 提出建议(或者如果它能发挥其他作用!)

procmail 设置

.fetchmailrc 文件:

set no bouncemail
poll outlook.office365.com with protocol imap
port 993
auth password
user [email protected] password password
ssl
sslfingerprint "<Correct Fingerprint - not sure if I should copy this here>"
sslcertpath /Users/myuser/.certs
keep
no rewrite
mda "/usr/local/bin/procmail -f %F -d %T";

.procmailrc 文件

VERBOSE=yes
:0
! [email protected]

(将 sendmail 配置为从我的 gmail 发送,按照我的回答:使用procmail转发到gmail

ssmtp 设置

/opt/local/etc/ssmtp/ssmtp.conf 文件

[email protected]
mailhub=smtp.gmail.com:587
rewriteDomain=
hostname=localhost
UseTLS=Yes
UseSTARTTLS=Yes
[email protected]
AuthPass=Hunter2
FromLineOverride=yes

(也尝试过没有 root 线,并使用 rewriteDomain=gmail.com)

.fetchmailrc 文件,与上面相同,除了 mda 行现在是:

mda "/opt/local/sbin/ssmtp [email protected]"

答案1

如果您的配置允许,Sendmail(可能还有sendmail来自 的程序ssmtp)允许您使用 覆盖信封发件人-f

下面是从 Procmail 执行此操作的快速方法。

:0
* ^Return-Path:[    ]*\/[^  ].+
! -f "$MATCH" [email protected]

方括号内的空白应该是一个空格和一个制表符,顺序不限。 (从上面复制/粘贴可能无法在您的浏览器中正常工作。)

特殊\/标记使 Procmail 将标记后面的匹配文本捕获到变量中MATCH。我们使用它从标题中复制值Return-Path:并将其作为参数传递给选项-f

这预设了原始信封发件人在 Return-Path: 标头中正确注释;现代 MTA 应该全面执行此操作,但如果您的上游是 Microsoft,则会出现令人不快的意外情况应该被期望。

您还需要了解信封发件人的目的。例如,这将导致任何退回邮件都发送至原始发件人。这恰当的解决这个问题的方法是将消息传输到最终目的地,而不是重新传递它们。

...或者将 Gmail 配置为显示与默认值不同的“发件人”,然后回复该发件人。

(我想象您正在询问信封发件人,因为转发邮件时通常应保留转发邮件的发件人标头,尽管某些 MTA 也会Sender:From:标头值或信封发件人被覆盖时添加标头。也许更新您的问题以表明哪些标头最终以错误的值结束(如果不是)。)

相关内容