根据我的使用情况配置 Postfix+Dovecot+MySQL

根据我的使用情况配置 Postfix+Dovecot+MySQL

我在 Debian 上安装了 Posfix、Dovecot 和 MySQL(例如 sample.net),并配置了外部用户只能通过此域 sample.net 发送邮件(使用我的 SMTP)。我还配置了所有邮件(如 *@sample.net)都转发到一个邮箱[电子邮件保护]. 我大部分时候都是遵循这个指南的。

我的一些 Postfix 配置:

virtual_alias_maps = proxy:mysql:/etc/postfix/mysql-virtual_forwardings.cf

mysql-virtual_forwardings.cf
query = SELECT destination FROM forwardings WHERE source='%s'

Table
| SOURCE | destination |
| @sample.net | [email protected] |

我已通过以下方式允许我的 SNTP 仅接收发往 sample.net 的邮件:

transport_maps = proxy:mysql:/etc/postfix/mysql-virtual-transport.cf

mysql-virtual-transport.cf
query = SELECT transport FROM transport WHERE DOMAIN='%s'

Table
| DOMAIN | transport |
| sample.net | : |
| * | error:Only allowing one domain |

一切如我所料,但我需要添加从本地客户端(如 PHP)向外部用户发送邮件的功能。不幸的是,我不知道该怎么做。

答案1

Postfix 中的默认设置是不允许中继给机器外部的任何人,并且只接受本地托管的域的邮件。

考虑到这一点,您想要实现的目标相当简单。您应该mydestination像这样设置(假设 postfix 服务器位于sample.net

mydestination = $myhostname localhost.$mydomain localhost

设置myhostname为服务器的主机名,mail.sample.net例如mydomainsample.net

这将确保来自“外部”的 postfix 只接受 的邮件sample.net,然后您可以设置一个别名将所有邮件重定向sample.net[email protected]

然后,您可以设置mynetworks为仅允许从其自身转发,如下所示:

mynetworks = 127.0.0.0/8

这将满足您的所有要求,并且更加灵活。您可能需要执行诸如设置 MX 记录、RDNS 之类的操作,以及可能超出此答案范围的其他操作。

答案2

您可以在此处找到使用 postfix、dovecot 和 mysql 设置电子邮件服务器的绝对精彩指南:https://workaround.org/ispmail/wheezy

我已经解决这个问题两次了,一次是用 Debian 和那里提到的组件,一次是用 Ubuntu,使用了略有不同的 postfix 和 dovecot 版本,并且用 postgres 代替了 mysql。

阅读并理解该指南是值得花费每一分钟的,我总是向人们推荐它,即使他们的设置较小。

相关内容