これは、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をインストールしたくないと言いました。サービスが中断される可能性があります。
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
実際には、基本的なSendmail機能を実装するPostfix互換ラッパーです。従来の理由から、sendmail
Sendmail MTAはもはや主要なMTAまたは標準のMTAではありませんが、正式名はそのまま残ります。
Procmailは送信メールとは関係ありません(非常にカスタマイズされた設定がある場合は記録する必要があります)。