![将通过 fetchmail 获取的电子邮件转发/重定向到 gmail](https://linux22.com/image/113193/%E5%B0%86%E9%80%9A%E8%BF%87%20fetchmail%20%E8%8E%B7%E5%8F%96%E7%9A%84%E7%94%B5%E5%AD%90%E9%82%AE%E4%BB%B6%E8%BD%AC%E5%8F%91%2F%E9%87%8D%E5%AE%9A%E5%90%91%E5%88%B0%20gmail.png)
我在 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:
标头值或信封发件人被覆盖时添加标头。也许更新您的问题以表明哪些标头最终以错误的值结束(如果不是)。)