Laravel9、PHP8を利用し、メールを送信する。
開発では、BlackJamboDogを利用しているのですが、マシン内でのメールのやりとりは普通に動作していた。
なので、XREAのサーバに配置してメールを送信するとメールが送れない??
エラーの内容:
[2023-09-22 08:30:33] local.ERROR: Expected response code “250” but got code “552”, with message “552 sorry, your domain isn’t in my list of allowed senderhosts (#5.7.1) [1**.2**.1**.2** s223.xrea.com]”. {“exception”:”[object] (Symfony\Component\Mailer\Exception\TransportException(code: 552): Expected response code \”250\” but got code \”552\”, with message \”552 sorry, your domain isn’t in my list of allowed senderhosts (#5.7.1) [1**.2**.1**.2** s223.xrea.com]\”. at /virtual/*******/public_html/*********/vendor/symfony/mailer/Transport/Smtp/SmtpTransport.php:307)
エラーの内容を見ると、「あなたのサーバのドメインは登録されていないので送れません」といってる??
.envの設定はsmtpで送信する設定で、間違っていない。
XREAのメールは制限が厳しいと聞いてはいたが・・・
で、ネットを調べてはみたが同じで、かれこれ2日が過ぎた・・
違う情報で、php.iniが利用者別の場所に配置していることが分かった!!
「/public_html/.fast-cgi-bin」にPHPの設定情報がバージョン別にありました。
ここに、メールの設定もあるので見てみると、sendmailの情報しかない??
ここでひらめきました!
「PHPから通常の方法でメールを送るのは禁止しているなだと・・・
その代わり、sendmailで送るのは許可しているんだな!」
案の定、.envをsendmailの設定に変えると、すんなり動作しました。
サーバをXREAを利用し、Laravelからメールを送信する時、.envを下のように設定しました。
MAIL_MAILER=sendmail
MAIL_HOST=localhost
MAIL_PORT=null
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_ENCRYPTION=
MAIL_FROM_ADDRESS=
MAIL_FROM_NAME=
MAIL_SENDMAIL_PATH=”/usr/sbin/sendmail -t -i”
めでたし、めでたい!
