Fil*_*lmJ 8 mysql email-server postfix mail-forwarding virtual-hosting
我正在将电子邮件从旧的 Plesk 安装迁移到运行 iRedMail (postfix/amavisd/dovecot/etc) 的定制构建的 Ubuntu 服务器。
我正在使用 postfixadmin 来管理所有域和一个 mysql 后端。我注意到,如果我想“别名”某些内容或创建转发,我无法使用现有邮箱 - 因此我无法复制 Plesk 风格的“使用保存的副本重定向”功能。
我目前正在通过数据库设置远程别名并使用:
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
Run Code Online (Sandbox Code Playgroud)
如果有办法仍然使用我的数据库,那将是理想的 - 即使我必须添加一些列并更改查询。
谢谢!
我想通了。基本上我需要修改保存别名的 mysql 表,以便它支持每个地址的多个别名,从而可以为本地域和远程电子邮件设置传递设置。
到目前为止,这有效,但我听说有些人尝试这样做已经将重复的电子邮件发送到转发的电子邮件帐户。到目前为止,我还没有经历过这种情况。
我使用 postfixadmin 来管理帐户,但它不支持这种用法,所以我不得不修改源代码,以便它正确显示、编辑和删除别名。
这里的主要教训是,当使用 mysql 时,单个键可以映射到多个结果,方法是设置一个新的主键,即“id”,但保持后缀查询逻辑相同。返回的多个结果与默认 dbm/bd 文件中的多个结果相同,只是您必须使用相同的键创建新记录,而不是使用某种分隔结果的单个键。
其他人!
这应该适用于 mysql 中的任何地图。
你有所有用户的本地帐户吗?
我使用了一个.forward文件,例如:
user@new-mail-server.example.com, \user
Run Code Online (Sandbox Code Playgroud)
它转发一个副本并在本地假脱机中保留一个副本。
如果您在 virtual_mailbox_maps 中定义了虚拟帐户,并且想要重定向并保留消息,则必须在别名映射中插入 2 个别名:
account@example.com redirect@anotherdomain.com
account@example.com account@example.com
Run Code Online (Sandbox Code Playgroud)
并且此语法会将任何邮件重定向到 account@example.com 到 redirect@anotherdomain.com 并检查您是否在 virtual_mailbox_maps 中有用户 account@example.com,如果有 - 保存它。
更新 或者您甚至可以使用(@Tim Heagele感谢您的评论)
account@example.com account@example.com redirect@anotherdomain.com
Run Code Online (Sandbox Code Playgroud)