##環境
EC-CUBEバージョン:EC-CUBE4.0.3
Apacheバージョン:2.4.51
PHPバージョン:7.2.34
##症状
EC-CUBEを運用中のメールサーバーの不具合があったためsmtpサーバーにgmailを利用することにしました。
env
1MAILER_URL=smtp://smtp.gmail.com:587?encryption=tls&auth_mode=login&username=アカウント@gmail.com&password=アプリパスワード
上記の通り.envファイルを修正してから一週間ほどは問題なく送信ができておりましたが、急にエラーが発生し、コンタクトフォームや自動返信メールの送信ができなくなってしまいました。
error
1 app.ERROR [N/A] [dcd73ca] [anon.] [Symfony\Bundle\SwiftmailerBundle\EventListener\EmailSenderListener:onTerminate:64] - Exception occurred while flushing email queue: Connection could not be established with host smtp.gmail.com [Connection timed out #110]
エラーが発生する前に変更した設定やファイルはありません。
##試したこと
###Gmailでの設定
1.安全性の低いアプリの許可を設定
2.アプリパスワードの設定
通常のパスワードを利用したり、二段階認証をオフにしたりと色々組み合わせましたが変化はありませんでした。
###別のメールサービスのsmtpサーバー利用
gmailとは別のメールサービスのsmtpを設定しましたが、こちらも同様のエラーが発生します。
###サーバー側の設定
1.リモートメールエクスチェンジャー設定済み
2.php.iniのmax_execution_timeの値を180~3000まで変更(デフォルト30)
###Apacheのエラー
サーバーのエラーログを確認した際に以下のようなエラーが発生していました。
error
1client denied by server configuration:home/XXXX/public_html/.env
これは.htaccess内の以下の記述を修正することで解消しました。
####変更前
htaccess
1<FilesMatch "^composer|^COPYING|^.env|^.maintenance|^Procfile|^app.json|^gulpfile.js|^package.json|^package-lock.json|web.config|^Dockerfile|.(ini|lock|dist|git|sh|bak|swp|env|twig|yml|yaml|dockerignore)$"> 2 order allow,deny 3 deny from all 4</FilesMatch> 5 6<Files ~ "index.php"> 7 order deny,allow 8 allow from all 9</Files>
####変更後
htaccess
1<FilesMatch "^composer|^COPYING|^.env|^.maintenance|^Procfile|^app.json|^gulpfile.js|^package.json|^package-lock.json|web.config|^Dockerfile|.(ini|lock|dist|git|sh|bak|swp|env|twig|yml|yaml|dockerignore)$"> 2 Require all granted 3</FilesMatch> 4 5<Files ~ "index.php"> 6 Require all granted 7</Files>
###別環境でのテスト
1.ローカルサーバー(XAMPP)環境で全く同じ構成のEC-CUBEでテスト
こちらは問題なく接続でき、送信先での受信を確認できました。
##実現したいこと
引き続きgmailのsmtpを利用したメールの送信を行いたいと思っています。
お力をお貸しください。よろしくお願いいたします。
あなたの回答
tips
プレビュー