如何使用 postfix 和 mysql 转发邮件并保存副本?

如何使用 postfix 和 mysql 转发邮件并保存副本?

我正在将电子邮件从旧的 Plesk 安装迁移到运行 iRedMail(postfix/amavisd/dovecot/etc)的定制 Ubuntu 服务器。

我使用 postfixadmin 来管理所有域和 mysql 后端。我注意到,如果我想为某些内容“添加别名”或创建转发,则无法使用现有邮箱 - 因此我无法复制 Plesk 样式的“使用已保存副本重定向”功能。

我目前正在通过数据库设置远程别名并使用:

virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf

如果有办法仍然可以使用我的数据库,那将是理想的 - 即使我必须添加一些列并更改查询。

谢谢!

答案1

我找到了答案。基本上,我需要修改保存别名的 mysql 表,以便它支持每个地址的多个别名,从而可以为本地域和远程电子邮件设置传递。

到目前为止,这种方法是有效的,不过我听说有些人尝试这种方法后,转发的电子邮件帐户收到了重复的电子邮件。到目前为止,我还没有遇到过这种情况。

我正在使用 postfixadmin 来管理帐户,但它不支持这种用法,所以我不得不修改源代码,以便它能够正确显示、编辑和删除别名。

这里的主要教训是,使用 mysql 时,可以通过设置新的主键(即“id”)但保持后缀查询逻辑不变,将单个键映射到多个结果。返回的多个结果与默认 dbm/bd 文件中的多个结果相同,只是您必须使用相同的键创建新记录,而不是使用某种分隔结果的单个键。

HTH 其他人!

这应该适用于 mysql 中的任何地图。

答案2

如果您在 virtual_mailbox_maps 中定义了虚拟账户,并且想要重定向并保留消息,则必须在别名映射中插入 2 个别名:

[email protected] [email protected]
[email protected] [email protected]

此语法将把所有邮件重定向到[电子邮件保护][电子邮件保护]并且将检查您是否有用户[电子邮件保护]在 virtual_mailbox_maps 中,如果是的话 - 保存它。

更新 或者你甚至可以使用 (@Tim Heagele谢谢您的评论)

[email protected] [email protected] [email protected] 

答案3

您是否为所有用户提供本地帐户?

我用过。向前文件内容如下:

[email protected], \user

它会转发一份副本,并在本地假脱机中保留一份副本。

答案4

从 postfix 的 main.cf 中发送可能更合法:

例如,在 main.cf 中:

### let's archive some incoming/outgoing mail:
recipient_bcc_maps = hash:/etc/postfix/recipient-bcc
sender_bcc_maps    = hash:/etc/postfix/sender-bcc

并在相关文件(收件人密件抄送和发件人密件抄送)中例如:

@sender.domain a.local@address

编辑文件后,不要忘记(重新)构建数据库:

postmap hash:recipient-bcc
postmap hash:sender-bcc

相关内容