表題の通り、さくらのレンタルサーバーでメール通知が送れない問題が発生して、ログを見てもわからないし、さくらの管理画面にエラーログは出力されないしで、全く原因がわからず1日半くらい費やしてしまってからフォーラムに相談してやっと解決できたのでご紹介します。
フォーラムで教えてくださった方に感謝。
concrete5 JAPAN フォーラム コメント欄のメール通知が送られない
おそらくさくらのレンタルサーバーでのセキュリティで、送信元ドメインが不正だとphp関数からメールが送れない、というのが原因だったのかと思います。
環境は以下
- さくらレンタルサーバー ビジネス
- PHP 5.6.30
- mySQL 5.5
- concrete5 8.0.3
確認した送れない通知メールは以下
- コメント欄ブロックの通知
- メール送信テスト
- パスワード再発行のメール
なお以下の通知メールは送れていました。
- ワークフローの通知
- フォームブロックからの投稿通知
application/config/generated_overrides/concrete.phpに以下を追記して対処しました。
<?php /** * ----------------------------------------------------------------------------- * Generated 2017-02-27T15:34:58+09:00 * * DO NOT EDIT THIS FILE DIRECTLY * * @item cache.full_page_lifetime_value * @group concrete * @namespace null * ----------------------------------------------------------------------------- */ return [ 'locale' => 'ja_JP', 'version_installed' => '8.0.3', 'version_db_installed' => '20161216000000', 'misc' => [ 'login_redirect' => 'DESKTOP', 'access_entity_updated' => 1488174725, ], 'cache' => [ 'blocks' => false, 'assets' => false, 'theme_css' => false, 'overrides' => false, 'pages' => '0', 'full_page_lifetime' => 'default', 'full_page_lifetime_value' => null, ], 'theme' => [ 'compress_preprocessor_output' => false, 'generate_less_sourcemap' => false, ], // さくらレンタルサーバー用メール通知 ここから 'email' => array( 'enabled' => true, 'default' => array( 'address' => 'concrete5-noreply@' . (isset($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : 'localhost'), ) ), // さくらレンタルサーバー用メール通知 ここまで ];