答案1
以下是我成功的方法。在 Sendmail 中,您需要修改 mailertable。添加以下内容:
alloweddomainname.com alloweddomainname.com
. error:
这实际上会将所有电子邮件发送到@alloweddomainname.com,而其他任何电子邮件都会出错。
答案2
PHPmail()
函数根据sendmail_path
中设置的 MTA 值发送邮件php.ini
,默认设置如下:
sendmail_path = /usr/sbin/sendmail -t -i
在某些系统上,它是 MTA 二进制文件的符号链接,在我的情况下,它是与 sendmail 兼容的 postfix MTA 包二进制文件,在其他情况下,它可能是 sendmail 或 qmail 或您使用的任何文件:
[root@giomacdesk ~]# ll /usr/sbin/sendmail
lrwxrwxrwx. 1 root root 21 ივლ 3 11:33 /usr/sbin/sendmail -> /etc/alternatives/mta
[root@giomacdesk ~]# ll /etc/alternatives/mta
lrwxrwxrwx. 1 root root 26 ივლ 3 11:33 /etc/alternatives/mta -> /usr/sbin/sendmail.postfix
因此,据此您可以:
A. 更改您的自定义脚本,编写解析器并相应地过滤消息。这将sendmail_path
仅影响通过 PHP 发送的外发消息。mail()
sendmail_path
B.更改邮件服务器的配置 - 这将影响通过服务器的 MTA 发送的所有消息,为此您必须检查您的服务器是什么并进行相应的配置。
如果是后缀:
将以下内容添加到 /etc/postfix/main.cf:
transport_maps = hash:/etc/postfix/transport_maps
创建
/etc/postfix/transport_maps
包含以下内容的文件:alloweddomain.com : * discard:
哈希:运行
postmap /etc/postfix/transport_maps
重启 postfix