どうして? PHPでmail()経由で送信できますが、IsSendmail()を使用してPHPMailer経由で送信できません
パス/usr/sbin/sendmail
正しい?
はいの場合は、sendmailの権限が正しく設定されていることも確認してください。
同じエラーが発生しました。これをコメント/削除することで解決しました:
$mail->IsSendmail();
今では正しく動作します。メールを送信でき、受信トレイで受信します。
私はこれと同じ問題を抱えていました。ログのチェック、sendmailパスのチェック、php mail()とsendmailのコマンドラインからのテストにほぼ1時間費やしましたが、役に立ちませんでした。そして最後に、私がしたのはapachectl -k graceful
を使用してApacheを再起動することだけで、宇宙は癒されました。
私にとっては、$mail->IsSMTP()
で動作しています。 IsSendmail()
はsendmailを探しています。
IsSendmail()を削除すると、別のエラーが発生しました。最終的に、ホストプロバイダーはPHP設定でセーフモードを削除する必要がありました。その後、機能しました。
DavidBurdessによる編集
SafeModeはライブサーバーに設定しないでください!たとえば、Joomlaまたは他のCMSソリューションで実行されているサイトは、テスト環境以外では有効にしないでください。
共有サーバー(およびおそらく他のサーバーでも)でsafe_mode
が有効になっているPHPは、/usr/sbin/sendmail
を開くことができません(PHPMailerはpopen
を使用します)
上記のブロックに同意します。デフォルトのmail()関数はすべてのサーバーで有効になっています(私は信じています)。私の場合、単純なmail()関数を使用して基本的なhtmlを送信できましたが、PHPMailerを使用して送信すると、そのエラーが発生しました。
したがってIsSendMail()をチェックする部分を削除し、すべて問題ありませんでした。より多くの例外がスローされます。
SMTPを使いたい人のために。最初にサーバーで電子メールアカウントを作成し、次にそのパラメーターをコードで定義します。
乾杯、
タルハ