这是 php 使用 php mail() 函数发送 php 邮件的方法:
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
; http://www.php.net/manual/en/mail.configuration.php#ini.sendmail-path
sendmail_path = /usr/sbin/sendmail -t -i //sendmail command to send mail
但它没有将邮件发送给收件人,我在邮件日志中收到以下内容:
Dec 1 12:52:09 srvload1 postfix/qmgr[25215]: D3982162BB6: from=<[email protected]>, size=524, nrcpt=1 (queue active)
Dec 1 12:52:09 srvload1 postfix/qmgr[25215]: warning: connect to transport private/[127.0.0.1]: No such file or directory
Dec 1 12:52:09 srvload1 postfix/error[25563]: D3982162BB6: to=<[email protected]>, relay=none, delay=0.03, delays=0.03/0/0/0, dsn=4.3.0, status=deferred (mail transport unavailable)
警告:连接到传输私有/[127.0.0.1]:?它会排队。它不发送。
我的服务器管理员告诉我我们没有安装 sendmail,我不想让它安装在服务器上,它可能会中断我们的服务。
有没有一种方法可以在不使用sendmail的情况下发送php mail()?服务器运行 ISPConfig CentOS Postfix 和我认为 Procmail
[root@srvload1 ~]# which procmail
/usr/bin/procmail
[root@srvload1 ~]# cat /etc/issue
CentOS release 6.5 (Final)
Kernel \r on an \m
答案1
这里似乎有很多错误的假设,但简短而尖锐的答案是您的 Postfix 配置已被破坏,需要更正。
根据您提供的信息,我无法告诉您具体方法。也许更新您的问题以包含 Postfix 配置中的相关片段(或者发布一个新的、更有针对性的问题,然后删除这个问题)。基本上,我们需要查看您的任何非标准内容/etc/postfix/master.cf
,尤其是涉及private/[127.0.0.1]
运输的任何内容。其他传输配置也可能对上下文有用。
您不需要安装 Sendmail,但确实需要具有用于发送邮件的工作配置。
/usr/sbin/sendmail
实际上是一个 Postfix 兼容性包装器,它实现了基本的 Sendmail 功能。由于遗留原因,sendmail
尽管 Sendmail MTA 不再是主导或标准 MTA,但它的规范名称仍然是 。
Procmail 与外发邮件无关(除非您有非常自定义的配置,在这种情况下您应该记录它)。