表題の通り、さくらのレンタルサーバーでメール通知が送れない問題が発生して、ログを見てもわからないし、さくらの管理画面にエラーログは出力されないしで、全く原因がわからず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'),
)
),
// さくらレンタルサーバー用メール通知 ここまで
];