2016-11-22 13 views
0

私はこれに関連してここにすべての投稿を信じて読んだことがあります。私はこれがLinuxのファイル権利に関連していると感じていますが、確かではありません。私の環境は、phpMyAdminなどでApache 2.4とPhp7を実行しているテストCentos7ボックスです。sendmail [email protected]を使用してメールを送信できます。私はこれをテストしました。私のphp.iniファイル(複数可)で
私はメール機能がfalseを返す"sendmail_path = /usr/sbin/sendmail -t -i;"PHP 7 Mail()not working

$to = "[email protected]"; 
$subject = "My subject"; 
$txt = "Hello world!"; 
$headers = "From: [email protected]" . "\r\n" . 
      "CC: [email protected]"; 
$mail = mail($to,$subject,$txt,$headers); //I have tried with no headers as well. 

を持っています。

+0

sendmail_pathに 'sendmail'と入力しました。私はそれが 'sendmaill'ではないと仮定しています。 –

+0

なぜ、PHPMailerやSwiftMailerのような外部ライブラリを使わないのですか? –

+0

これは私がmail()が正しいと思っていたのです。私の上司は、メールはこれを完了するための最速の方法であるべきだと述べました。途中でmail()が出ていますか?もう一方の上で使用する理由はありますか? –

答えて

1

この問題には多くの理由があるため、私はもうメール()を使用していないため、PHPMailerを外部SMTP(たとえばGMAIL)と併用しますが、メール() Sendmail、EximまたはPostfixがあなたのサーバにインストールされています。

端末でメールを送信できるのであれば、まずphp.iniに設定があるかもしれません。メッセージが端末で失敗した場合は、Postfix/Sendmail/Eximは、エラーメッセージのログを記録します。

mail()を使用する権限がある場合は、サーバープロバイダにも確認してください。スパムのためにこの機能をブロックするサーバーもあり、手動の承認が必要です。

+0

朝にこれをチェックします。私はEximをサーバに持っていなかった。私はphpmailerも探しています。 –

+0

右。あなたは3つのプログラムのうちの1つだけを必要とします。ただ1つしか持たないことをお勧めします。私は過去にpostfixだけを使いました。 postfixとsendmailがインストールされていると、競合が発生し、メッセージが失敗したときにすべてのログを確認してください。 – bruno