3.8.2 でフォーラムメーリングが機能しない

3.8.2 でフォーラムメーリングが機能しない

- T N の投稿
返信数: 7

Moodle 3.6.2+ から 3.8.2 にアップグレードしたところ、フォーラムへの投稿が以下の様に配信されなくなりました。

  • 強制購読のアナウンスメントでグループを限定して「編集遅延時間なしにフォーラム投稿通知を送信する 」としても、送信されない。
  • 編集遅延時間ありでも送信されない。
  • グループを限定しなくても、送信されない。
  • 任意購読でも送信されない。
  • コースを変えても、フォーラムを変えても送信されない。
  • アナウンスメントでも、後から設置したフォーラムでも状況は同じ。
  • フォーラムとは無関係の個別のメッセージは送信できるので、サイト管理の送信メール設定に問題はない(と思う)。
  • サイト管理▶メッセージング▶通知設定▶購読フォーラム投稿のメールはオンラインでもオフラインでも有効にしてある(3.6.2+ と同じ設定)。
  • 同一サーバーに残してある 3.6.2+(dbname 等は書き換えてある) は正常に機能している。
  • 以下のログには何も記録されないので、送信した振りをして、実際には送信していないように見える。
    • /var/log/messages
    • /var/log/maillog     正常なら、送信記録が残る。
    • /var/log/nginx/error.log
    • /var/log/audit/audit.log (# ausearch -m avc)

/var/www/html/moodle/admin/tool/task/cli にて、php schedule_task.php --execute=\\mod_forum\\task\\cron_task を実行すると、以下のような出力があります。この例ですと4人のユーザにメッセージを送ったかのように表示されていますが、実際には送られていません。ログにも何も記録されていません。

Execute scheduled task: フォーラムメーリングおよびメンテナンスジョブ (mod_forum\task\cron_task)
Removing old digest records from 7 days ago.
Removed all old digest records.
Fetching unmailed posts.
Done
Processing post information
Processed 1 posts
Filling caches
Filling course cache
Done
Filling forum cache
Done
Filling discussion cache
Done
Filling user subscription cache
Done
Filling digest cache
Done
All caches filled
Queueing user tasks.
Processing 24 users
Queued 0 digests and 0 messages for 2616
Queued 0 digests and 1 messages for 709
Queued 0 digests and 0 messages for 2291
Queued 0 digests and 0 messages for 2376
Queued 0 digests and 0 messages for 2317
Queued 0 digests and 0 messages for 1562
Queued 0 digests and 0 messages for 2179
Queued 0 digests and 0 messages for 1974
Queued 0 digests and 0 messages for 2578
Queued 0 digests and 0 messages for 2294
Queued 0 digests and 0 messages for 1678
Queued 0 digests and 0 messages for 1980
Queued 0 digests and 0 messages for 2234
Queued 0 digests and 0 messages for 2187
Queued 0 digests and 0 messages for 2282
Queued 0 digests and 0 messages for 2512
Queued 0 digests and 0 messages for 2110
Queued 0 digests and 0 messages for 2670
Queued 0 digests and 0 messages for 1417
Queued 0 digests and 0 messages for 2109
Queued 0 digests and 1 messages for 3
Queued 0 digests and 0 messages for 2092
Queued 0 digests and 1 messages for 691
Queued 0 digests and 1 messages for 692
Queued 0 digests, and 4 individual tasks for 4 post mails. Unique users: 4 (20 ignored)
All tasks queued.
... used 94 dbqueries
... used 0.36962699890137 seconds
Scheduled task complete: フォーラムメーリングおよびメンテナンスジョブ (mod_forum\task\cron_task)

3.7 からフォーラム投稿の処理の仕方が変わったらしいことが分かったので、/moodle/mod/forum/ を見てみると、以下の様になっていました。

3.8.2
/moodle/mod/forum/lib.php 6961 行
/moodle/mod/forum/classes/task/cron_task.php 543 行
/moodle/mod/forum/classes/task/refres_forum_post_counts.php 81 行
/moodle/mod/forum/classes/task/send_user_digests.php 617 行
/moodle/mod/forum/classes/task/send_user_notifications.php 556 行
3.6.2+
/moodle/mod/forum/lib.php 8605 行
/moodle/mod/forum/classes/task/cron_task.php 48 行

このように、だいぶ変わっていましたので、単純な比較では太刀打ちできず、お手上げとなりました。
3.8.2 のフォーラムの投稿を配信できるようにするには、どうすれば良いのかご教授いただければ幸いです。

なお、環境は以下の通りです。
Moodle 3.8.2 MariaDB 10.3.22 PHP 7.3.15 nginx 1.16.1 Fedora 31 SELinux
T N への返信

Re: 3.8.2 でフォーラムメーリングが機能しない

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators

フォーラムメールが到着しないユーザの「プリファレンス > ユーザアカウント > 通知プリファレンス」ページでは「購読フォーラム投稿」の「メール」設定が「オンライン」「オフライン」共に有効 (On) に設定されていますでしょうか?

添付 Notification preferences.png
Mitsuhiro Yoshida への返信

Re: 3.8.2 でフォーラムメーリングが機能しない

- T N の投稿
はい、有効にしてあります。
購読済みフォーラムダイジェストも含め、ウェブと併せて、オンにしたりオフにしてみたり、いくつかの組合せを試しました。
T N への返信

Re: 3.8.2 でフォーラムメーリングが機能しない

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators

ありがとうございます。

現在のところ、原因として思いつきますことは以下の5点です。

  • Moodleを独自にカスタマイズしている
  • Moodleに非標準プラグインをインストールしている
  • Moodleから送信されたメールがスパムとして受信拒否またはスパムボックスに入れられている
  • ModSecurity等のWAFによってMoodleのフォーラム投稿のメール送信が拒否されている
  • SELinuxがフォーラム投稿のメール送信に影響している ※1 ※2

[※1 Re: Messaging: Emails not being sent out.]
https://moodle.org/mod/forum/discuss.php?d=117915#p799072

[※2 SELinux blocking - Troubleshooting - PHPMailer/PHPMailer Wiki]
https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

もし、可能でしたら、同じ環境に別のMoodle 3.8.2+をクリーンインストールした上でフォーラムからのメール送信可否をご確認ください。

評点平均: お役立ち度: ★★★★★★★ (1)
Mitsuhiro Yoshida への返信

Re: 3.8.2 でフォーラムメーリングが機能しない

- T N の投稿
いろいろ、ありがとうございます。
アドバイスにしたがい、クリーンインストールをしてみました。結果をまとめますと、以下の様になります。

Moodle 3.8.2 (3.6.2+ からのアップグレード)  MariaDB 10.3.22 PHP 7.3.15 nginx 1.16.1  Fedora 31 SELinux enabled メッセージ○ フォーラムメーリング×
Moodle 3.6.2+(3.4.1+ からのアップグレード) MariaDB 10.3.22 PHP 7.3.15 nginx 1.16.1  Fedora 31 SELinux enabled メッセージ○ フォーラムメーリング○
Moodle 3.8.2+(クリーンインストール)     MariaDB 10.3.22 PHP 7.3.15 Apache 2.4.41 Fedora 31 SELinux disabled メッセージ○ フォーラムメーリング×

結局、クリーンインストールでも、Apache でも、SELinux disabled でも、ダメでした。
何か分かるかもしれないので、これから Apache 下で、3.6.9 + のクリーンインストールをしてみます。
T N への返信

Re: 3.8.2 でフォーラムメーリングが機能しない

- T N の投稿
あまり望まない結果となりました。

Moodle 3.8.2 (3.6.2+ からのアップグレード)  MariaDB 10.3.22 PHP 7.3.15 nginx 1.16.1  Fedora 31 SELinux enabled メッセージ○ フォーラムメーリング×
Moodle 3.6.2+(3.4.1+ からのアップグレード) MariaDB 10.3.22 PHP 7.3.15 nginx 1.16.1  Fedora 31 SELinux enabled メッセージ○ フォーラムメーリング○
Moodle 3.8.2+(クリーンインストール)     MariaDB 10.3.22 PHP 7.3.15 Apache 2.4.41 Fedora 31 SELinux disabled メッセージ○ フォーラムメーリング×
Moodle 3.6.9+(クリーンインストール)     MariaDB 10.3.22 PHP 7.3.15 Apache 2.4.41 Fedora 31 SELinux disabled メッセージ○ フォーラムメーリング○

この結果だけ見ると、nginx か Apache か、SELinux か否か、に関係なく、3.6 だとフォーラムメーリングが機能するけれども、3.8 だと機能しないことになります。
T N への返信

Re: 3.8.2 でフォーラムメーリングが機能しない

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators

大変お忙しい中、詳細を調査して頂きまして、ありがとうございます。

すでにお試し頂いているかと思いますが、念のため、以下のようにMoodle cron用PHPスクリプトを実行しても同じ結果になるかどうかご確認ください。

php /var/www/html/moodle/admin/cli/cron.php

評点平均: お役立ち度: ★★★★★★★ (1)
Mitsuhiro Yoshida への返信

Re: 3.8.2 でフォーラムメーリングが機能しない

- T N の投稿

cronデーモンで走らせているので、それはやらなくてもいいかな、と思っていましたが、大間違いでした。

いざ php /var/www/html/moodle/admin/cli/cron.php を実行すると、不都合な真実が泉のように湧いて出てきました😅

溜まっていたタスク(主に、core_message\task\migrate_message_data)が解消されると、フォーラムメーリングの件は解決しました。

ありがとうございました。助かりました。

評点平均: お役立ち度: ★★★★★★★ (2)