【運維】Redmine4.0.3配置郵件通知

Redmine4.0.3配置郵件通知

  • Redmine默認未開啓郵件通知,需要進行額外的配置。

配置方法

  • 創建配置文件(redmine/config/configuration.yml)。一般在config文件下有一個configuration.yml.example文件,該文件是Reminde提供的例子,直接將copy一份即可。
cd ~/reminde/config/
cp configuration.yml.example configuration.yml
  • 編譯configuration.yml
 email_delivery:
    delivery_method: :smtp
    smtp_settings:
      ssl: true  #使用SSL
      address: "smtp.xxx.com"
      port: xxx  #端口號
      authentication: :login
      domain: 'smtp.xxx.com'
      user_name: "[email protected]"  #賬戶
      password: "xxxxxx"  #密碼
  • 重啓Redmine
sudo -s
# 直接kill調redmine進程號即可
kill xxx
# 在redmine根目錄輸入重啓命令 3000爲端口號,根據實際情況修改
 ruby bin/rails server webrick -e production -b 0.0.0.0 -p 3000
  • Remind管理頁面設置郵件通知。例如,進入remind下述地址:
    http://192.168.xxx.xxx:3000/settings?tab=notifications。然後點擊該頁面底部“發送測試郵件”進行測試。
# 將郵件發送人地址配置成
[email protected]

備註

  • Redmine4.0開始。Redmine默認採用的郵件發送方式,都是單獨發送。假設,一封郵件需要給10個人發送郵件。會一個人一個人,依次發送。而不是,一封郵件羣發10個人。關於這個,有興趣的可以查看(redmine/app/models/mailer.rb)這個文件,裏面定義了郵件通知的方法。
# 以下內容摘自 redmine/app/models/mailer.rb
def self.deliver_issue_edit(journal)
  users  = journal.notified_users | journal.notified_watchers
  users.select! do |user|
    journal.notes? || journal.visible_details(user).any?
  end
  # 依次發送
  users.each do |user|
    issue_edit(user, journal).deliver_later
  end
end

# issue_edit接口實現
def issue_edit(user, journal)
  issue = journal.journalized
  redmine_headers 'Project' => issue.project.identifier,
                  'Issue-Id' => issue.id,
                  'Issue-Author' => issue.author.login
  redmine_headers 'Issue-Assignee' => issue.assigned_to.login if issue.assigned_to
  message_id journal
  references issue
  @author = journal.user
  s = "[#{issue.project.name} - #{issue.tracker.name} ##{issue.id}] "
  s << "(#{issue.status.name}) " if journal.new_value_for('status_id')
  s << issue.subject
  @issue = issue
  @user = user
  @journal = journal
  @journal_details = journal.visible_details
  @issue_url = url_for(:controller => 'issues', :action => 'show', :id => issue, :anchor => "change-#{journal.id}")
  # 發送郵件
  mail :to => user,
    :subject => s
end
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章