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: "linduo@xxx.com"
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。然后点击该页面底部“发送测试邮件”进行测试。
linduo@xxx.com
备注
- 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