Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

投稿に対してのメール通知機能が機能しません #412

Closed
Mo-Dash opened this issue Jul 20, 2016 · 5 comments
Closed

投稿に対してのメール通知機能が機能しません #412

Mo-Dash opened this issue Jul 20, 2016 · 5 comments

Comments

@Mo-Dash
Copy link

Mo-Dash commented Jul 20, 2016

投稿に対してのメール通知機能が機能しません

投稿したナレッジに対してコメントの通知等、メール通知機能が機能しません。
テストメール送信の場合はログが表示されますが、投稿への通知メールではログに送信しようとした形跡がありませんでした。
過去の内容から notify_queuesテーブルを確認した所^1、通知メールが残っていました。
mailsテーブルには何も登録されていません。

何か足りない設定等があるのでしょうか?

  • システム設定ーメール送信設定でのテストメールは送信されています

確認環境

メール送信設定

項目 バージョン
ホスト名 127.0.0.1
ポート番号 25

環境

項目 バージョン
OS debian
DB postgresql 9.4
tomcat 8.0.36
knowledge 1.4.1 (バージョンアップせずこのバージョンを初めてインストール)

#64

@koda-masaru
Copy link
Contributor

メール通知は、tomcatで動いているweb appから、定期的にjavaのバッチプロセスを起動して送信しています。
ご連絡いただいた内容から推測すると、そのバッチプロセスが起動できていない/もしくは何らかのエラーが発生しているのではないかと思います。
knowledgeのデータディレクトリに、logsというディレクトリがあり、そこに、NotifyMailBat.loというファイルはありますでしょうか?
また、そこにエラーなどが出力されていないでしょうか?

@Mo-Dash
Copy link
Author

Mo-Dash commented Jul 20, 2016

ご返答ありがとうございます。
指定されたファイルを確認致しましたが、NofifyMailBat.loが存在しませんでした。

/usr/local/tomcat/.knowledge/logs

フォルダには app.log のみ作成されているようです。
NotifyMailBat.lo が存在しない事が問題でしょうか?
何度もすみません。

@koda-masaru
Copy link
Contributor

ログが存在していないということは、バッチ処理の起動が失敗していることになると思います。
(バッチ起動時にログを出力するので)

以前、同じようにweb appから定期的にjavaを実行できない(呼び出せない)という報告があったのですが、そのときには、定期バッチ処理を cron(Linux) や タスクスケジューラ(Windows)で呼び出すという対策をとりました。(なぜ呼び出せないかは、結局わかりませんでした)

参考までに、タスクスケジューラで実行した際のバッチの内容を記載します。
それでCron起動できますでしょうか?

set KNOWLEDGE_HOME=C:\data\.knowledge
set BASEPATH=C:\Tomcat\webapps\knowledge\WEB-INF
set CLASSPATH=%BASEPATH%\classes;%BASEPATH%\lib\*
cd %KNOWLEDGE_HOME%\logs

java org.support.project.knowledge.bat.FileParseBat
java org.support.project.knowledge.bat.MailSendBat
java org.support.project.knowledge.bat.WebhookBat
java org.support.project.knowledge.bat.NotifyMailBat

呼び出しているバッチ処理は4つありますが、それは以下の処理になります。

  • FileParseBatは、添付したファイルの中身で検索できるように、ファイルの中からテキストを抽出する処理
  • MailSendBatは、メールの送信処理(下に書いてあるメール通知のキューを順に処理する)
  • WebhookBatは、特定のイベントでWebHook通知を行う処理
  • NotifyMailBatは、記事が投稿があった場合などに、メール通知するユーザを判定し、メール通知のキューをつくる処理

@Mo-Dash
Copy link
Author

Mo-Dash commented Jul 21, 2016

返答遅くなりました。
ご連絡ありがとうございます。

ご教授頂いたバッチファイルを4つ起動する事で、メールが届くようになりました。
やはりCronが起動されていなかったようです。
ご対応ありがとうございました:smile:

本件これでCloseでお願いします。

ちなみに
憶測でしかありませんが…
.knowledge/logs以下に作成されるログファイルが 実行ユーザ:tomcatグループの644で作成していたので、linuxのデプロイでうまく動かない。で考えられるのはパーミッション関連が怪しいかもです

@koda-masaru
Copy link
Contributor

ご連絡ありがとうございました。
動いたようで安心しました 😄

環境によって、定期処理が実行できなくなることがあることを聞いていたのですが、
ご連絡の通り、パーミッション関係かもですね。

セットアップを極力簡単(warを置くだけでOK)にするために、定期処理をwebappから
呼び出していますが、Cronなどで呼び出すように変更した方が逆にわかりやすいかも、、、
いろいろ考えてみます。

いったん、本issueはクローズします。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants