Dovecot/postfix:转发所有当前消息

Dovecot/postfix:转发所有当前消息

我尝试实现的目标非常简单,而且经过谷歌搜索后,很难相信我竟然无法找到解决方案。

我想要的是转发所有当前的用户的消息(已发送)([电子邮件保护]) 转移到另一个不受我控制的外部账户 ([电子邮件保护])。源服务器(我们的)是带有 postfix/dovecot 的 Ubuntu Server 14.04。

唯一想到的是通过 bash 脚本,例如,遍历每个纯文本邮箱的消息,操作其内容以删除标题,然后使用 sendmail 转发它们,但我认为应该有一个简单的工具或一个非常知名的工具选项来指定目标帐户和要转发的邮件文件路径。

答案1

根据 Marco 的回答,我使用了一些 IMAP 同步实用程序来实现这一点,这些实用程序可以在 windows/*nix 上运行,并支持 SSL,http://imapsync.lamiral.info/

如果您无法请求临时权限(重置密码一天左右),我会在他的电子邮件客户端上配置您的帐户,以便通过这种方式将其下载到他的邮箱中,否则,您将从您的邮箱发送所有这些电子邮件,而不是原始发件人,这会很麻烦。

您还可以附加消息并将其作为附件转发。我不确定如何使用脚本执行此操作,但有人可以弄清楚。

mbox 解决方案

sudo apt-get install procmail

[email protected]

cat /var/spool/mail/root |
formail -k                \
        -X From:          \
        -X Subject:       \
        -X Message-Id:    \
        -X Date:          \
        -X To:            \
        -I "To: $myemail" \
        -s /usr/sbin/sendmail -t -f $myemail

来源: 将本地存储在 Linux 机器上的 mbox 格式的邮件重新发送到可用的电子邮件地址

答案2

如果您有 IMAP 访问权限[电子邮件保护]您可以考虑使用所有邮件客户端中提供的 IMAP 上传功能。只需在客户端(例如 Thunderbird、Outlook、Windows Live Mail)中配置两个帐户,然后将邮件从一个收件箱拖放到另一个收件箱即可。或者有很多自动 IMAP 迁移工具。

如果您没有 IMAP 访问权限,您可以使用“转发”功能 - 在 Horde 网络邮件或mutt命令行邮件客户端中可用 - 这将保留原始发件人(请注意收件人的垃圾邮件过滤器)

答案3

您可以sendmail将消息文件(Maildir)用作输入和参数,-i以不将仅有一个字符的行.视为输入的结尾。

for f in *; do sendmail -i [email protected] < $f; done

答案4

您必须sieve为配置插件dovecot。然后只需为特定用户创建包含以下代码的脚本:

require ["copy"];
# rule:[redirect]
if true
{
        redirect :copy "[email protected]";
}

从 MTA 传递到 LDA(dovecot deliver)的所有消息都将存储在邮箱中,并重定向到另一个 MTA。

相关内容