EC-CUBE4ではメールの設定はルートディレクトリに設置されている.envに記載されています。
この設定値によってメールの送信方法を変えることが可能です。エックスサーバーなど標準の設定ではメールが送信できないレンタルサーバーもありますので設定方法をご紹介します。
設定ファイルでMAILER_URLを確認してみる
.envには様々な設定がありますがメールの送信に関する設定はMAILER_URLです。
この設定でSwiftMailerが使用するサーバーを指定しますが、初期値では MAILER_URL=smtp://localhost となっていることがあります。
※EC-CUBE4.2以降はMAILER_DSNという名称になっていますのでご注意ください。
ただしこの設定ではレンタルサーバー等では動作しない可能性がありますのでEC-CUBE4を設置しても
会員登録や注文、問い合わせでタイムアウトまで非常に長い時間待機させられるが結局メールが送信されないという状況になります。
MAILER_URLを変更
そういった時はMAILER_URLの値を調整することをお勧めします。
例えばローカルのSendmailを使用したい時は MAILER_URL=sendmail://localhost と書くことでメールが送信可能です。
エックスサーバーではこの指定でメールが送信できることを確認しています。
他にもGmailを使用したい時は MAILER_URL=gmail://username:password@localhost?encryption=tls&auth_mode=oauth と記載するなど
様々なメールサーバーに対応しています。
MAILER_URLの設定に問題がない場合
プログラム上は問題がないのにメールが届いていない場合、メールサーバーのセキュリティに受信拒否されている、もしくは迷惑メールとして扱われている可能性があります。
Hotmail、iCloudメール、Gmailなどは特に厳しい印象です。
現在はSPF、DKIMどちらの対策もしていなければほぼ迷惑メール扱いになると考えて良いので、どちらか、できれば両方の設定を行ってみてください。
メール送信サーバーのIPアドレス逆引きも設定することが理想ですが、レンタルサーバー では難しく、クラウドやVPSであれば可能です。
Gmailのポリシー
GmailではSPFかDKIMのどちらか+DMARCの設定は最低限必要とアナウンスされています。
[2024年2月から] Gmailへメールが届かない・迷惑メールになる対策について公式発表
EC-CUBEに関するお問い合わせ
[重要]現在公式にセキュリティサポートが切れていないPHPは8.1以上、MySQLは8.0以上で、対応しているEC-CUBEバージョンは4.2以上です。古いEC-CUBEを使っている方は適切なタイミングでバージョンアップをご検討ください。