要望や症状
XServerでメール送信を行う際に、MAILER_URL環境変数を設定してもメールが送信されない問題が発生することがあります。
発生する状況
EC-CUBE 4.2.2をXServerで運用している環境で、XServerのSMTPサーバーを使用してメール送信を実装したいとお考えの場合に発生します。従来のMAILER_URL環境変数にXServerのSMTP設定を記述しても、メールの送信が正常に動作しません。
理由や原因
この問題の原因は、EC-CUBE 4.2系でメール送信設定の環境変数名が変更されたことにあります。
バージョン別の環境変数の違い
EC-CUBE 4.0から4.1系ではMAILER_URLという環境変数を使用していましたが、EC-CUBE 4.2系以降ではMAILER_DSNに変更されています。
そのため、4.2系でMAILER_URLを設定していても、SymfonyのMailerコンポーネントが設定を正しく読み込むことができず、メール送信が失敗してしまいます。
解決策
環境変数の修正手順
.envファイルでMAILER_URLをMAILER_DSNに変更する必要があります。
# 修正前(4.0-4.1系の形式)
# MAILER_URL=smtp://sv***.xserver.jp:465?encryption=ssl&auth_mode=login&username=SMTPユーザー&password=SMTPパスワード
# 修正後(4.2系以降の形式)
MAILER_DSN=smtp://SMTPユーザー:SMTPパスワード@sv***.xserver.jp:465?encryption=ssl
XServer固有の設定値について
XServerでSMTPメール送信を設定する際は、以下の値を正確に設定してください。
ホスト名は契約サーバー番号に対応したsv***.xserver.jpの形式で指定します。ポートは465番を使用し、SSL/TLS接続を行います。ユーザー名には完全なメールアドレス(例:info@example.com)を指定し、パスワードにはメールアカウントのパスワードを設定します。暗号化方式はsslを指定してください。
設定後の確認作業
.envファイルを保存した後は、bin/console cache:clearコマンドを実行してキャッシュをクリアしてください。その後、管理画面のメール設定から送信テストを実行して、正常に動作することを確認します。
設定時の注意点
XServerでは事前にメールアカウントの作成とSMTP認証の有効化を行っておく必要があります。また、パスワードに特殊文字が含まれている場合は、URLエンコードが必要な場合があることにご注意ください。