EC-CUBEのメール設定でSMTPを使うときの注意

さくらサーバのクイックインストールでEC-CUBEをインストールをしたら、カート(/shopping/)に進んだだけでエラーになってしまった。

システムエラーが発生しました。
大変お手数ですが、サイト管理者までご連絡ください。

ただ普通にインストールしただけなのに。

ログを確認すると、メール設定の部分でつまづいていることがわかった。

[2023-12-30T01:04:08.572934+09:00] front.ERROR [cff26ec0] [f607b03] [N/A] [Eccube\Log\Logger:log:66] – システムエラーが発生しました。 [“The controller for URI \”/shopping\” is not callable: The \”smtp://メールアドレス:パスワード\” mailer DSN is invalid.”

メール設定は、.envで下記になっていた。

MAILER_DSN=smtp://メールアドレス:パスワード@サーバ名:465?auth_mode=plain

一見問題なさそうだが、パスワードに#が入っていることがNGだった理由。
.envでは #以降がコメントアウトになってしまうからね。
それでログでDSN is invalidになっているし、ログ内でもDSNのパスワード部分が途中で切れていた。

さくらサーバの仕様としてはメールパスワードに記号が使えるし # を使っても問題ないが、EC-CUBEのSMTPに使う場合には # は使えないということ。

同様に、データベースパスワードにも使えないことになるね。

ちなみに、これまでEC-CUBEを使用したときにSMTP設定をした記憶がなくて、SMTPを使わないときは .envが下記になっていた。

MAILER_URL=smtp://localhost:25

さくらサーバのクイックインストールでは、メールアドレスだけではなく、SMTP情報を聞かれたのでした。