如何设置 Postfix 使其仅接收来自特定域的电子邮件?
我的服务器上有一个特定的电子邮件帐户,我只希望能够接收从 txt.att.net、text.wireless.alltel.com 和 mms.alltel.net 转发的电子邮件。转发到此帐户的任何其他电子邮件都应退回给发件人。
这取决于你想如何限制它。我不确定这些是您所说的邮件中继还是发送地址。
发送地址
您可以在适当的 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,但请记住,如果他们有多个邮件中继或曾经更改过他们的邮件中继,您需要弄清楚这一点。
| 归档时间: |
|
| 查看次数: |
13957 次 |
| 最近记录: |