我正在尝试将一些电子邮件地址列入黑名单,但我就是无法让 Postfix 访问工作。
有人能指出我可能做错的事情吗?
添加
smtpd_recipient_restrictions = check_sender_access hash:/etc/postfix/check_senders
到 /etc/postfix/ 中的 main.cf 文件
创建了 /etc/postfix/check_senders 我将我的地址添加到文件中以检查它是否正常运行该文件包含
[email protected] REJECT
使用以下方式创建后缀查找表
#>postmap /etc/postfix/check_senders
重新加载并重新启动 postfix
#>postfix reload
#>postfix restart
为了测试这一点,我创建了一个非常基本的 php 邮件脚本,名为 test.php
<?php
$to = '[email protected]';
$subject = 'Test postfix access';
$headers = "From: My Name <" . strip_tags('[email protected]') . ">\r\n";
$headers .= "Reply-To: ". strip_tags($to) . "\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
if (mail($to, $subject, 'Test is a test message from the server', $headers)) echo "Sent\n\r";
使用以下方式运行文件
#>php test.php
我仍然收到 php 脚本发送的电子邮件.....有什么想法吗?
答案1
你可能遇到两个问题:
check_sender_access
检查信封发件人地址。在您的 php 脚本中,您只设置了“发件人:”标头。信封发件人可能完全不同(请参阅结果消息中的“Return-Path”标头)如果您在与 postfix 相同的服务器上运行此 php 脚本,
smtpd_recipient_restrictions
则不会触发。php mail() 函数默认使用 sendmail 二进制文件提交邮件,因此 smtpd 不参与。
-> 问题可能不是你的 postfix 配置,而是你用 php 进行的测试。尝试从外部邮件源(如 gmail 帐户)发送电子邮件,然后查看你的黑名单是否有效