通知メールの同報をメール本文などに出力して、メール内で他の誰に通知されたかをわかるようにしたい
juno-nishizaki opened this issue · comments
残タスク
- app/models/mailer.rbを書き換えて@recipientsを作るようにしている。今はissue_add, issue_edit, document_addのみ対応している。それ以外も対応する (リマインダーとセキュリティー通知は要検討)
- テスト(mailer.rbの各メソッドに引数を足しているので、それらに対する対応も必要)
- 動作検証
参考情報
https://github.com/ishikawa999/redmine_development_docker を使っている人は、mail catcherを使って送信メールの中身を確認しながらテストできる。
https://github.com/ishikawa999/redmine_development_docker#redmine%E3%81%8B%E3%82%89%E9%80%81%E4%BF%A1%E3%81%95%E3%82%8C%E3%82%8B%E3%83%A1%E3%83%BC%E3%83%AB%E3%81%AE%E5%86%85%E5%AE%B9%E3%82%92%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF
第17回Redmineパッチ会で取り組む
いままでの経緯:
- 設定でチェックをつけると、メールフッタに同報先を追記するようにした
- メールフッタは、「表示形式」をカンマ区切りで列挙した。
- 表示形式はメール文中のAsigneeeにならった。
- リンクにしてない、メールアドレスを出していない、id表記にしてないのはメール文中にならった以上の意図はない
- なおX-Redmine-assigneeヘッダはid表記
- 人が多すぎると運用によってはフッタが長すぎて都合が悪いかもなので、人数制限もできるようにした
- はみ出すと「………」になっちゃうけど、それはチケットを見に行けばいいよね
CCを追加すべき対象について検討:
grep self.deliver app/models/mailer.rb
- def self.deliver_issue_add(issue) -> def issue_add(user, issue, recipients)
- def self.deliver_issue_edit(journal) -> def
- ↑ ここまで17回までに実装済、テスト記述済
- ↓ ここから23回で実装中、テストひな型記述済(flunkで実装済; 中身の実装が必要)
- def self.deliver_document_added(document, author) -> def
- def self.deliver_attachments_added(attachments) -> def
- def self.deliver_news_added(news) -> def
- def self.deliver_news_comment_added(comment) -> def
- def self.deliver_message_posted(message) -> def
- def self.deliver_wiki_content_added(wiki_content) -> def
- def self.deliver_wiki_content_updated(wiki_content) -> def
def self.deliver_account_information(user, password)∵adminが作成したときに対象ユーザのみに通知- def self.deliver_account_activation_request(new_user) -> def ※ Adminを複数人用意して確認すること
def self.deliver_account_activated(user) -> defdef self.deliver_lost_password(user, token, recipient=nil) -> defdef self.deliver_password_updated(user, sender) -> defdef self.deliver_register(user, token) -> def- def self.deliver_security_notification(users, sender, options={}) -> def 管理者を追加削除すると送信される
- def self.deliver_settings_updated(sender, changes, options={}) -> def リポジトリを変えると送信される
def self.deliver_test_email(user) -> defdef self.deliver_mail(mail)def reminder(user, issues, days)