Postfix 仅接收数据库电子邮件地址

Postfix 仅接收数据库电子邮件地址

我的一台服务器上有一个标准 Postfix 服务器,目前我还没有设置任何东西。我希望实现的是:在 MySQL 数据库中,我希望存储 Postfix 接受的电子邮件地址。其他一切都应该被拒绝。

我读了很多“HOWTO”,但现在我对此感到很困惑。步骤是??

  • 创建一个数据库,其中包含 id、地址、状态(例如 1,[电子邮件保护],好的)

  • 在 /etc/postfix 中创建一个 cfg 文件来告知 DB 连接详细信息 + 一个查询,例如:从用户中选择状态,其中地址 ='%s' (顺便问一下,%s 是什么?)

  • 在 main.cfg 中添加以下内容: smtpd_recipient_restrictions = check_recipient_access mysql:/etc/postfix/mysql-recipient-access.cf

  • 重新启动 postfix 和 viola....

不是最后一部分,“voila”对我来说不起作用。我在这个想法上犯了什么错误?

我总是得到以下回复:

Mar 25 12:46:40 myserver postfix/local[32436]: 6D1C88XXX: to=<[email protected]>, relay=local, delay=0.21, delays=0.15/0.03/0/0.02, dsn=5.1.1, status=bounced (unknown user: "anyone")

在数据库中我有一行:id:1, address:[email protected], status:OK

答案1

哈……哈……别在意我了。再次上传了一个问题,然后很快就找到了解决方案。:D 所以我做错的是,我错过了 luser_relay 将所有消息转发给现有用户并将本地收件人映射转发到数据库。总结一下,您需要执行以下操作:

/etc/postfix/main.cf

  • myhostname = mail.myserver.com
  • 我的域名 = myserver.com
  • myorigin = $mydomain
  • inet_interfaces = 全部
  • mydestination = $我的主机名,localhost,$我的域名
  • 我的网络 = 127.0.0.0/8,我的.服务器.IP.地址/32
  • 中继域 = $我的目的地
  • home_mailbox = Maildir/
  • luser_relay=[电子邮件保护]
  • local_recipient_maps = mysql:/etc/postfix/vmailbox

在/etc/postfix/vmailbox

  • 用户 = dbadmin
  • 密码 = SECRET
  • 主机 = 本地主机
  • 数据库名称 = 邮件服务器
  • 查询 = SELECT id FROM places WHERE email='%s'

现在我们可以讨论任何事情了:)

相关内容