Redmine4.0.3配置郵件通知
- Redmine默認未開啓郵件通知,需要進行額外的配置。
配置方法
- 創建配置文件(redmine/config/configuration.yml)。一般在config文件下有一個configuration.yml.example文件,該文件是Reminde提供的例子,直接將copy一份即可。
cd ~/reminde/config/
cp configuration.yml.example configuration.yml
email_delivery:
delivery_method: :smtp
smtp_settings:
ssl: true
address: "smtp.xxx.com"
port: xxx
authentication: :login
domain: 'smtp.xxx.com'
user_name: "[email protected]"
password: "xxxxxx"
sudo -s
kill xxx
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)這個文件,裏面定義了郵件通知的方法。
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
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