Postfix : 只接收来自特定域的电子邮件?

use*_*327 6 email postfix

如何设置 Postfix 使其仅接收来自特定域的电子邮件?

我的服务器上有一个特定的电子邮件帐户,我只希望能够接收从 txt.att.net、text.wireless.alltel.com 和 mms.alltel.net 转发的电子邮件。转发到此帐户的任何其他电子邮件都应退回给发件人。

Phi*_*lds 9

这取决于你想如何限制它。我不确定这些是您所说的邮件中继还是发送地址。

发送地址

您可以在适当的 smtpd_*_restrictions 中使用 check_sender_access 指令。通常最佳做法是在收件人限制内应用所有发件人、主机检查等(即在客户端发送 'RCPT To:' 之后)

例如只允许来自发件人@gmail.com 和@hotmail.com 的邮件......

将 smtpd_recipient_restrictions 设置为以下内容:

smtpd_recipient_restrictions =
    check_sender_access hash:/etc/postfix/access,
    reject
Run Code Online (Sandbox Code Playgroud)

现在 /etc/postfix/access 应该是这样的形式:

gmail.com OK
hotmail.com OK
Run Code Online (Sandbox Code Playgroud)

使用 postmap hash:/etc/postfix/access 创建哈希表。

中继主机名或 IP

smtpd_recipient_restrictions =
    check_client_access hash:/etc/postfix/client_access,
    reject
Run Code Online (Sandbox Code Playgroud)

client_access 的格式类似:

host.name.of.system.com  OK
ip.addr.of.system        OK
Run Code Online (Sandbox Code Playgroud)

阅读你的日志

以下是我的 mail.log 中示例消息的完整摘录。我选择了一条消息并获得了队列 ID - 31AF4761F3。它将在邮件的标题以及您的邮件日志文件中。

$ grep 31AF4761F3 /var/log/mail.log
Sep  4 09:30:38 cutoffs postfix/smtpd[7912]: 31AF4761F3: client=russian-caravan.cloud9.net[w.x.y.z]
Sep  4 09:30:38 cutoffs postfix/cleanup[7915]: 31AF4761F3: message-id=<007B93C54F154113B36026A22D5E0106@gaby>
Sep  4 09:30:38 cutoffs postfix/qmgr[19172]: 31AF4761F3: from=<owner-postfix-users@postfix.org>, size=4225, nrcpt=1 (queue active)
Sep  4 09:30:39 cutoffs postfix/pipe[7916]: 31AF4761F3: to=<XXXX@XXXX>, relay=spamassassin, delay=1.4, delays=0.19/0.01/0/1.3, dsn=2.0.0, status=sent (delivered via spamassassin service)
Sep  4 09:30:39 cutoffs postfix/qmgr[19172]: 31AF4761F3: removed
Run Code Online (Sandbox Code Playgroud)

您可以在第一行中看到,我们有 client=russian-caravan.cloud9.net(这是为 postfix 邮件列表发送邮件的邮件服务器),IP 地址在括号中。您可以在访问文件中使用主机名或 IP,但请记住,如果他们有多个邮件中继或曾经更改过他们的邮件中继,您需要弄清楚这一点。