##// END OF EJS Templates
Better handle html-only emails (#16962)....
Better handle html-only emails (#16962). git-svn-id: http://svn.redmine.org/redmine/trunk@14313 e93f8b46-1217-0410-a6f0-8f06a7374b81

File last commit:

r13777:09eef4e75c02
r13931:3ae42cb32617
Show More
mailer.rb
538 lines | 20.3 KiB | text/x-ruby | RubyLexer
Jean-Philippe Lang
Adds email notifications support for news comments (#2074)....
r4883 # Redmine - project management software
Jean-Philippe Lang
Copyright update....
r13490 # Copyright (C) 2006-2015 Jean-Philippe Lang
Jean-Philippe Lang
added svn:eol-style native property on /app files...
r330 #
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
Jean-Philippe Lang
Host setting should contain the path prefix (Redmine base URL) to properly generate links in emails that are sent offline (#2122)....
r1987 #
Jean-Philippe Lang
added svn:eol-style native property on /app files...
r330 # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
Jean-Philippe Lang
Host setting should contain the path prefix (Redmine base URL) to properly generate links in emails that are sent offline (#2122)....
r1987 #
Jean-Philippe Lang
added svn:eol-style native property on /app files...
r330 # You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
class Mailer < ActionMailer::Base
Eric Davis
Upgraded to Rails 2.3.4 (#3597)...
r2773 layout 'mailer'
Jean-Philippe Lang
Fixed: "undefined method 'textilizable'" error on email notification when running Repository#fetch_changesets from the console....
r1153 helper :application
helper :issues
helper :custom_fields
Jean-Philippe Lang
Host setting should contain the path prefix (Redmine base URL) to properly generate links in emails that are sent offline (#2122)....
r1987
Jean-Philippe Lang
Merged Rails 2.2 branch. Redmine now requires Rails 2.2.2....
r2430 include Redmine::I18n
Jean-Philippe Lang
Host setting should contain the path prefix (Redmine base URL) to properly generate links in emails that are sent offline (#2122)....
r1987
Eric Davis
Fixing Plugin and Mailer default_url_options....
r2458 def self.default_url_options
Jean-Philippe Lang
Incorrect links generated in emails if host setup uses other port (#19323)....
r13699 options = {:protocol => Setting.protocol}
if Setting.host_name.to_s =~ /\A(https?\:\/\/)?(.+?)(\:(\d+))?(\/.+)?\z/i
host, port, prefix = $2, $4, $5
options.merge!({
:host => host, :port => port, :script_name => prefix
})
else
options[:host] = Setting.host_name
end
options
Eric Davis
Fixing Plugin and Mailer default_url_options....
r2458 end
Toshi MARUYAMA
remove trailing white-spaces from mailer model source....
r5696
Jean-Philippe Lang
Role-based issue custom field visibility (#5037)....
r11782 # Builds a mail for notifying to_users and cc_users about a new issue
def issue_add(issue, to_users, cc_users)
Jean-Philippe Lang
Add the following headers to email notifications (#830, #247):...
r1250 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
Jean-Philippe Lang
Adds Message-Id and References headers to email notifications so that issues and messages threads can be displayed by email clients (#1401)....
r2279 message_id issue
Jean-Philippe Lang
Role-based issue custom field visibility (#5037)....
r11782 references issue
Jean-Philippe Lang
Adds a X-Redmine-Sender header to email notifications (#5643)....
r8665 @author = issue.author
Jean-Philippe Lang
Merged rails-3.2 branch....
r9346 @issue = issue
Jean-Philippe Lang
Role-based issue custom field visibility (#5037)....
r11782 @users = to_users + cc_users
Jean-Philippe Lang
Merged rails-3.2 branch....
r9346 @issue_url = url_for(:controller => 'issues', :action => 'show', :id => issue)
Jean-Philippe Lang
Add support for multiple email addresses per user (#4244)....
r13504 mail :to => to_users,
:cc => cc_users,
Jean-Philippe Lang
Merged rails-3.2 branch....
r9346 :subject => "[#{issue.project.name} - #{issue.tracker.name} ##{issue.id}] (#{issue.status.name}) #{issue.subject}"
Jean-Philippe Lang
added svn:eol-style native property on /app files...
r330 end
Jean-Philippe Lang
Role-based issue custom field visibility (#5037)....
r11782 # Notifies users about a new issue
def self.deliver_issue_add(issue)
to = issue.notified_users
cc = issue.notified_watchers - to
issue.each_notification(to + cc) do |users|
Mailer.issue_add(issue, to & users, cc & users).deliver
end
end
# Builds a mail for notifying to_users and cc_users about an issue update
def issue_edit(journal, to_users, cc_users)
issue = journal.journalized
Jean-Philippe Lang
Add the following headers to email notifications (#830, #247):...
r1250 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
Jean-Philippe Lang
Adds Message-Id and References headers to email notifications so that issues and messages threads can be displayed by email clients (#1401)....
r2279 message_id journal
references issue
Jean-Philippe Lang
Fixed: email notification for changes I make still occurs when running Repository.fetch_changesets (#1957)....
r2223 @author = journal.user
Jean-Philippe Lang
Display the issue status in the email subject only if the status was actually changed....
r1065 s = "[#{issue.project.name} - #{issue.tracker.name} ##{issue.id}] "
s << "(#{issue.status.name}) " if journal.new_value_for('status_id')
s << issue.subject
Jean-Philippe Lang
Merged rails-3.2 branch....
r9346 @issue = issue
Jean-Philippe Lang
Role-based issue custom field visibility (#5037)....
r11782 @users = to_users + cc_users
Jean-Philippe Lang
Merged rails-3.2 branch....
r9346 @journal = journal
Jean-Philippe Lang
Role-based issue custom field visibility (#5037)....
r11782 @journal_details = journal.visible_details(@users.first)
Jean-Philippe Lang
Merged rails-3.2 branch....
r9346 @issue_url = url_for(:controller => 'issues', :action => 'show', :id => issue, :anchor => "change-#{journal.id}")
Jean-Philippe Lang
Add support for multiple email addresses per user (#4244)....
r13504 mail :to => to_users,
:cc => cc_users,
Jean-Philippe Lang
Merged rails-3.2 branch....
r9346 :subject => s
Jean-Philippe Lang
added svn:eol-style native property on /app files...
r330 end
Jean-Philippe Lang
Host setting should contain the path prefix (Redmine base URL) to properly generate links in emails that are sent offline (#2122)....
r1987
Jean-Philippe Lang
Role-based issue custom field visibility (#5037)....
r11782 # Notifies users about an issue update
def self.deliver_issue_edit(journal)
issue = journal.journalized.reload
to = journal.notified_users
Jean-Philippe Lang
Remove users from cc if they are already notified (#16415)....
r12754 cc = journal.notified_watchers - to
Jean-Philippe Lang
Don't notify users about relations that are not visible (#1005)....
r11785 journal.each_notification(to + cc) do |users|
issue.each_notification(users) do |users2|
Mailer.issue_edit(journal, to & users2, cc & users2).deliver
end
Jean-Philippe Lang
Role-based issue custom field visibility (#5037)....
r11782 end
end
Jean-Philippe Lang
Adds a rake task to send reminders. An email is sent to each user with a list of the issues due in the next days, if any....
r1445 def reminder(user, issues, days)
set_language_if_valid user.language
Jean-Philippe Lang
Merged rails-3.2 branch....
r9346 @issues = issues
@days = days
@issues_url = url_for(:controller => 'issues', :action => 'index',
Toshi MARUYAMA
code layout clean up of reminder() at app/models/mailer.rb...
r7347 :set_filter => 1, :assigned_to_id => user.id,
:sort => 'due_date:asc')
Jean-Philippe Lang
Add support for multiple email addresses per user (#4244)....
r13504 mail :to => user,
Jean-Philippe Lang
Merged rails-3.2 branch....
r9346 :subject => l(:mail_subject_reminder, :count => issues.size, :days => days)
Jean-Philippe Lang
Adds a rake task to send reminders. An email is sent to each user with a list of the issues due in the next days, if any....
r1445 end
Jean-Philippe Lang
Host setting should contain the path prefix (Redmine base URL) to properly generate links in emails that are sent offline (#2122)....
r1987
Toshi MARUYAMA
change mailer model method comments to Rails3 style...
r9480 # Builds a Mail::Message object used to email users belonging to the added document's project.
Eric Davis
Added some RDoc documentation for some models....
r2536 #
# Example:
Toshi MARUYAMA
change mailer model method comments to Rails3 style...
r9480 # document_added(document) => Mail::Message object
# Mailer.document_added(document).deliver => sends an email to the document's project recipients
Jean-Philippe Lang
Removed translated email templates attachments_added and document_added (no longer usefull)....
r823 def document_added(document)
Jean-Philippe Lang
Add the following headers to email notifications (#830, #247):...
r1250 redmine_headers 'Project' => document.project.identifier
Jean-Philippe Lang
Don't use #delete on String in Mailer....
r9117 @author = User.current
Jean-Philippe Lang
Merged rails-3.2 branch....
r9346 @document = document
@document_url = url_for(:controller => 'documents', :action => 'show', :id => document)
Jean-Philippe Lang
Add support for multiple email addresses per user (#4244)....
r13504 mail :to => document.notified_users,
Jean-Philippe Lang
Merged rails-3.2 branch....
r9346 :subject => "[#{document.project.name}] #{l(:label_document_new)}: #{document.title}"
Jean-Philippe Lang
added svn:eol-style native property on /app files...
r330 end
Jean-Philippe Lang
Host setting should contain the path prefix (Redmine base URL) to properly generate links in emails that are sent offline (#2122)....
r1987
Toshi MARUYAMA
change mailer model method comments to Rails3 style...
r9480 # Builds a Mail::Message object used to email recipients of a project when an attachements are added.
Eric Davis
Added some RDoc documentation for some models....
r2536 #
# Example:
Toshi MARUYAMA
change mailer model method comments to Rails3 style...
r9480 # attachments_added(attachments) => Mail::Message object
# Mailer.attachments_added(attachments).deliver => sends an email to the project's recipients
Jean-Philippe Lang
Removed translated email templates attachments_added and document_added (no longer usefull)....
r823 def attachments_added(attachments)
Jean-Philippe Lang
added svn:eol-style native property on /app files...
r330 container = attachments.first.container
Jean-Philippe Lang
Replaced hard-coded urls in Mailer#attachments_add...
r658 added_to = ''
Jean-Philippe Lang
Mailer:...
r864 added_to_url = ''
Jean-Philippe Lang
Don't use #delete on String in Mailer....
r9117 @author = attachments.first.author
Jean-Philippe Lang
Replaced hard-coded urls in Mailer#attachments_add...
r658 case container.class.name
Jean-Philippe Lang
Files module: makes version field non required (#1053)....
r2115 when 'Project'
Jean-Philippe Lang
Fixed links in new file notification broken by r4051 (#6590)....
r5110 added_to_url = url_for(:controller => 'files', :action => 'index', :project_id => container)
Jean-Philippe Lang
Files module: makes version field non required (#1053)....
r2115 added_to = "#{l(:label_project)}: #{container}"
Jean-Philippe Lang
Add support for multiple email addresses per user (#4244)....
r13504 recipients = container.project.notified_users.select {|user| user.allowed_to?(:view_files, container.project)}
Jean-Philippe Lang
added svn:eol-style native property on /app files...
r330 when 'Version'
Jean-Philippe Lang
Fixed links in new file notification broken by r4051 (#6590)....
r5110 added_to_url = url_for(:controller => 'files', :action => 'index', :project_id => container.project)
Jean-Philippe Lang
added svn:eol-style native property on /app files...
r330 added_to = "#{l(:label_version)}: #{container.name}"
Jean-Philippe Lang
Add support for multiple email addresses per user (#4244)....
r13504 recipients = container.project.notified_users.select {|user| user.allowed_to?(:view_files, container.project)}
Jean-Philippe Lang
added svn:eol-style native property on /app files...
r330 when 'Document'
Jean-Philippe Lang
Mailer:...
r864 added_to_url = url_for(:controller => 'documents', :action => 'show', :id => container.id)
Jean-Philippe Lang
added svn:eol-style native property on /app files...
r330 added_to = "#{l(:label_document)}: #{container.title}"
Jean-Philippe Lang
Add support for multiple email addresses per user (#4244)....
r13504 recipients = container.notified_users
Jean-Philippe Lang
added svn:eol-style native property on /app files...
r330 end
Jean-Philippe Lang
Add the following headers to email notifications (#830, #247):...
r1250 redmine_headers 'Project' => container.project.identifier
Jean-Philippe Lang
Merged rails-3.2 branch....
r9346 @attachments = attachments
@added_to = added_to
@added_to_url = added_to_url
mail :to => recipients,
:subject => "[#{container.project.name}] #{l(:label_attachment_new)}"
Jean-Philippe Lang
added svn:eol-style native property on /app files...
r330 end
Toshi MARUYAMA
remove trailing white-spaces from mailer model source....
r5696
Toshi MARUYAMA
change mailer model method comments to Rails3 style...
r9480 # Builds a Mail::Message object used to email recipients of a news' project when a news item is added.
Eric Davis
Added some RDoc documentation for some models....
r2536 #
# Example:
Toshi MARUYAMA
change mailer model method comments to Rails3 style...
r9480 # news_added(news) => Mail::Message object
# Mailer.news_added(news).deliver => sends an email to the news' project recipients
Jean-Philippe Lang
Mail notification options restored (default is: issue_added and issue_updated)....
r717 def news_added(news)
Jean-Philippe Lang
Add the following headers to email notifications (#830, #247):...
r1250 redmine_headers 'Project' => news.project.identifier
Jean-Philippe Lang
Don't use #delete on String in Mailer....
r9117 @author = news.author
Jean-Philippe Lang
Adds Message-Id and References headers to email notifications so that issues and messages threads can be displayed by email clients (#1401)....
r2279 message_id news
Jean-Philippe Lang
Role-based issue custom field visibility (#5037)....
r11782 references news
Jean-Philippe Lang
Merged rails-3.2 branch....
r9346 @news = news
@news_url = url_for(:controller => 'news', :action => 'show', :id => news)
Jean-Philippe Lang
Add support for multiple email addresses per user (#4244)....
r13504 mail :to => news.notified_users,
:cc => news.notified_watchers_for_added_news,
Jean-Philippe Lang
Merged rails-3.2 branch....
r9346 :subject => "[#{news.project.name}] #{l(:label_news)}: #{news.title}"
Jean-Philippe Lang
Mail notification options restored (default is: issue_added and issue_updated)....
r717 end
Toshi MARUYAMA
remove trailing white-spaces from mailer model source....
r5696
Toshi MARUYAMA
change mailer model method comments to Rails3 style...
r9480 # Builds a Mail::Message object used to email recipients of a news' project when a news comment is added.
Jean-Philippe Lang
Adds email notifications support for news comments (#2074)....
r4883 #
# Example:
Toshi MARUYAMA
change mailer model method comments to Rails3 style...
r9480 # news_comment_added(comment) => Mail::Message object
Jean-Philippe Lang
Adds email notifications support for news comments (#2074)....
r4883 # Mailer.news_comment_added(comment) => sends an email to the news' project recipients
def news_comment_added(comment)
news = comment.commented
redmine_headers 'Project' => news.project.identifier
Jean-Philippe Lang
Don't use #delete on String in Mailer....
r9117 @author = comment.author
Jean-Philippe Lang
Adds email notifications support for news comments (#2074)....
r4883 message_id comment
Jean-Philippe Lang
Role-based issue custom field visibility (#5037)....
r11782 references news
Jean-Philippe Lang
Merged rails-3.2 branch....
r9346 @news = news
@comment = comment
@news_url = url_for(:controller => 'news', :action => 'show', :id => news)
Jean-Philippe Lang
Add support for multiple email addresses per user (#4244)....
r13504 mail :to => news.notified_users,
:cc => news.notified_watchers,
Jean-Philippe Lang
Merged rails-3.2 branch....
r9346 :subject => "Re: [#{news.project.name}] #{l(:label_news)}: #{news.title}"
Jean-Philippe Lang
Adds email notifications support for news comments (#2074)....
r4883 end
Jean-Philippe Lang
Mailer:...
r864
Toshi MARUYAMA
change mailer model method comments to Rails3 style...
r9480 # Builds a Mail::Message object used to email the recipients of the specified message that was posted.
Eric Davis
Added some RDoc documentation for some models....
r2536 #
# Example:
Toshi MARUYAMA
change mailer model method comments to Rails3 style...
r9480 # message_posted(message) => Mail::Message object
# Mailer.message_posted(message).deliver => sends an email to the recipients
Jean-Philippe Lang
Make sure users don't get notified for thing they can not view (#3589)....
r3055 def message_posted(message)
Jean-Philippe Lang
Add the following headers to email notifications (#830, #247):...
r1250 redmine_headers 'Project' => message.project.identifier,
'Topic-Id' => (message.parent_id || message.id)
Jean-Philippe Lang
Don't use #delete on String in Mailer....
r9117 @author = message.author
Jean-Philippe Lang
Adds Message-Id and References headers to email notifications so that issues and messages threads can be displayed by email clients (#1401)....
r2279 message_id message
Jean-Philippe Lang
Role-based issue custom field visibility (#5037)....
r11782 references message.root
Jean-Philippe Lang
Add support for multiple email addresses per user (#4244)....
r13504 recipients = message.notified_users
cc = ((message.root.notified_watchers + message.board.notified_watchers).uniq - recipients)
Jean-Philippe Lang
Merged rails-3.2 branch....
r9346 @message = message
@message_url = url_for(message.event_url)
mail :to => recipients,
:cc => cc,
:subject => "[#{message.board.project.name} - #{message.board.name} - msg#{message.root.id}] #{message.subject}"
Jean-Philippe Lang
Mailer:...
r864 end
Toshi MARUYAMA
remove trailing white-spaces from mailer model source....
r5696
Toshi MARUYAMA
change mailer model method comments to Rails3 style...
r9480 # Builds a Mail::Message object used to email the recipients of a project of the specified wiki content was added.
Jean-Philippe Lang
Adds email notification on wiki changes (#413). It's disabled by default and can be enabled in application settings....
r2650 #
# Example:
Toshi MARUYAMA
change mailer model method comments to Rails3 style...
r9480 # wiki_content_added(wiki_content) => Mail::Message object
# Mailer.wiki_content_added(wiki_content).deliver => sends an email to the project's recipients
Jean-Philippe Lang
Adds email notification on wiki changes (#413). It's disabled by default and can be enabled in application settings....
r2650 def wiki_content_added(wiki_content)
redmine_headers 'Project' => wiki_content.project.identifier,
'Wiki-Page-Id' => wiki_content.page.id
Jean-Philippe Lang
Don't use #delete on String in Mailer....
r9117 @author = wiki_content.author
Jean-Philippe Lang
Adds email notification on wiki changes (#413). It's disabled by default and can be enabled in application settings....
r2650 message_id wiki_content
Jean-Philippe Lang
Add support for multiple email addresses per user (#4244)....
r13504 recipients = wiki_content.notified_users
cc = wiki_content.page.wiki.notified_watchers - recipients
Jean-Philippe Lang
Merged rails-3.2 branch....
r9346 @wiki_content = wiki_content
@wiki_content_url = url_for(:controller => 'wiki', :action => 'show',
Toshi MARUYAMA
code layout clean up of wiki_content_added() at app/models/mailer.rb...
r7343 :project_id => wiki_content.project,
:id => wiki_content.page.title)
Jean-Philippe Lang
Merged rails-3.2 branch....
r9346 mail :to => recipients,
:cc => cc,
:subject => "[#{wiki_content.project.name}] #{l(:mail_subject_wiki_content_added, :id => wiki_content.page.pretty_title)}"
Jean-Philippe Lang
Adds email notification on wiki changes (#413). It's disabled by default and can be enabled in application settings....
r2650 end
Toshi MARUYAMA
remove trailing white-spaces from mailer model source....
r5696
Toshi MARUYAMA
change mailer model method comments to Rails3 style...
r9480 # Builds a Mail::Message object used to email the recipients of a project of the specified wiki content was updated.
Jean-Philippe Lang
Adds email notification on wiki changes (#413). It's disabled by default and can be enabled in application settings....
r2650 #
# Example:
Toshi MARUYAMA
change mailer model method comments to Rails3 style...
r9480 # wiki_content_updated(wiki_content) => Mail::Message object
# Mailer.wiki_content_updated(wiki_content).deliver => sends an email to the project's recipients
Jean-Philippe Lang
Adds email notification on wiki changes (#413). It's disabled by default and can be enabled in application settings....
r2650 def wiki_content_updated(wiki_content)
redmine_headers 'Project' => wiki_content.project.identifier,
'Wiki-Page-Id' => wiki_content.page.id
Jean-Philippe Lang
Don't use #delete on String in Mailer....
r9117 @author = wiki_content.author
Jean-Philippe Lang
Adds email notification on wiki changes (#413). It's disabled by default and can be enabled in application settings....
r2650 message_id wiki_content
Jean-Philippe Lang
Add support for multiple email addresses per user (#4244)....
r13504 recipients = wiki_content.notified_users
cc = wiki_content.page.wiki.notified_watchers + wiki_content.page.notified_watchers - recipients
Jean-Philippe Lang
Merged rails-3.2 branch....
r9346 @wiki_content = wiki_content
@wiki_content_url = url_for(:controller => 'wiki', :action => 'show',
Toshi MARUYAMA
code layout clean up of wiki_content_updated() at app/models/mailer.rb...
r7344 :project_id => wiki_content.project,
Jean-Philippe Lang
Merged rails-3.2 branch....
r9346 :id => wiki_content.page.title)
@wiki_diff_url = url_for(:controller => 'wiki', :action => 'diff',
Toshi MARUYAMA
code layout clean up of wiki_content_updated() at app/models/mailer.rb...
r7344 :project_id => wiki_content.project, :id => wiki_content.page.title,
:version => wiki_content.version)
Jean-Philippe Lang
Merged rails-3.2 branch....
r9346 mail :to => recipients,
:cc => cc,
:subject => "[#{wiki_content.project.name}] #{l(:mail_subject_wiki_content_updated, :id => wiki_content.page.pretty_title)}"
Jean-Philippe Lang
Adds email notification on wiki changes (#413). It's disabled by default and can be enabled in application settings....
r2650 end
Jean-Philippe Lang
Host setting should contain the path prefix (Redmine base URL) to properly generate links in emails that are sent offline (#2122)....
r1987
Toshi MARUYAMA
change mailer model method comments to Rails3 style...
r9480 # Builds a Mail::Message object used to email the specified user their account information.
Eric Davis
Added some RDoc documentation for some models....
r2536 #
# Example:
Toshi MARUYAMA
change mailer model method comments to Rails3 style...
r9480 # account_information(user, password) => Mail::Message object
# Mailer.account_information(user, password).deliver => sends account information to the user
Jean-Philippe Lang
Mailer:...
r864 def account_information(user, password)
set_language_if_valid user.language
Jean-Philippe Lang
Merged rails-3.2 branch....
r9346 @user = user
@password = password
@login_url = url_for(:controller => 'account', :action => 'login')
mail :to => user.mail,
:subject => l(:mail_subject_register, Setting.app_title)
Jean-Philippe Lang
Mailer:...
r864 end
Jean-Philippe Lang
Host setting should contain the path prefix (Redmine base URL) to properly generate links in emails that are sent offline (#2122)....
r1987
Toshi MARUYAMA
change mailer model method comments to Rails3 style...
r9480 # Builds a Mail::Message object used to email all active administrators of an account activation request.
Eric Davis
Added some RDoc documentation for some models....
r2536 #
# Example:
Toshi MARUYAMA
change mailer model method comments to Rails3 style...
r9480 # account_activation_request(user) => Mail::Message object
# Mailer.account_activation_request(user).deliver => sends an email to all active administrators
Jean-Philippe Lang
There's now 3 account activation strategies (available in application settings):...
r902 def account_activation_request(user)
# Send the email to all active administrators
Jean-Philippe Lang
Add support for multiple email addresses per user (#4244)....
r13504 recipients = User.active.where(:admin => true)
Jean-Philippe Lang
Merged rails-3.2 branch....
r9346 @user = user
@url = url_for(:controller => 'users', :action => 'index',
Toshi MARUYAMA
code layout clean up of account_activation_request() at app/models/mailer.rb...
r7345 :status => User::STATUS_REGISTERED,
:sort_key => 'created_on', :sort_order => 'desc')
Jean-Philippe Lang
Merged rails-3.2 branch....
r9346 mail :to => recipients,
:subject => l(:mail_subject_account_activation_request, Setting.app_title)
Jean-Philippe Lang
There's now 3 account activation strategies (available in application settings):...
r902 end
Jean-Philippe Lang
Mailer:...
r864
Toshi MARUYAMA
change mailer model method comments to Rails3 style...
r9480 # Builds a Mail::Message object used to email the specified user that their account was activated by an administrator.
Eric Davis
Added some RDoc documentation for some models....
r2536 #
# Example:
Toshi MARUYAMA
change mailer model method comments to Rails3 style...
r9480 # account_activated(user) => Mail::Message object
# Mailer.account_activated(user).deliver => sends an email to the registered user
Jean-Philippe Lang
Send an email to the user when an administrator activates a registered user (#2656)....
r2422 def account_activated(user)
set_language_if_valid user.language
Jean-Philippe Lang
Merged rails-3.2 branch....
r9346 @user = user
@login_url = url_for(:controller => 'account', :action => 'login')
mail :to => user.mail,
:subject => l(:mail_subject_register, Setting.app_title)
Jean-Philippe Lang
Send an email to the user when an administrator activates a registered user (#2656)....
r2422 end
Jean-Philippe Lang
Send password reset email to the email used in lost password form (#4244)....
r13506 def lost_password(token, recipient=nil)
Jean-Philippe Lang
added svn:eol-style native property on /app files...
r330 set_language_if_valid(token.user.language)
Jean-Philippe Lang
Send password reset email to the email used in lost password form (#4244)....
r13506 recipient ||= token.user.mail
Jean-Philippe Lang
Merged rails-3.2 branch....
r9346 @token = token
@url = url_for(:controller => 'account', :action => 'lost_password', :token => token.value)
Jean-Philippe Lang
Send password reset email to the email used in lost password form (#4244)....
r13506 mail :to => recipient,
Jean-Philippe Lang
Merged rails-3.2 branch....
r9346 :subject => l(:mail_subject_lost_password, Setting.app_title)
Jean-Philippe Lang
Host setting should contain the path prefix (Redmine base URL) to properly generate links in emails that are sent offline (#2122)....
r1987 end
Jean-Philippe Lang
added svn:eol-style native property on /app files...
r330
def register(token)
set_language_if_valid(token.user.language)
Jean-Philippe Lang
Merged rails-3.2 branch....
r9346 @token = token
@url = url_for(:controller => 'account', :action => 'activate', :token => token.value)
mail :to => token.user.mail,
:subject => l(:mail_subject_register, Setting.app_title)
Jean-Philippe Lang
Added mail notification when a new message is posted in the forums....
r528 end
Jean-Philippe Lang
Host setting should contain the path prefix (Redmine base URL) to properly generate links in emails that are sent offline (#2122)....
r1987
Jean-Philippe Lang
Renamed Mailer#test to Mailer#test_email....
r8960 def test_email(user)
Jean-Philippe Lang
Added 'email sending test' functionality....
r629 set_language_if_valid(user.language)
Jean-Philippe Lang
Merged rails-3.2 branch....
r9346 @url = url_for(:controller => 'welcome')
mail :to => user.mail,
:subject => 'Redmine test'
Jean-Philippe Lang
Mailer:...
r864 end
Jean-Philippe Lang
Do not send an email with no recipient, cc or bcc (closes #743)....
r1160
Jean-Philippe Lang
Adds a rake task to send reminders. An email is sent to each user with a list of the issues due in the next days, if any....
r1445 # Sends reminders to issue assignees
# Available options:
# * :days => how many days in the future to remind about (defaults to 7)
# * :tracker => id of tracker for filtering issues (defaults to all trackers)
# * :project => id or identifier of project to process (defaults to all projects)
Jean-Philippe Lang
Fixed that the reminder email excludes issues assigned to groups (#11723)....
r10152 # * :users => array of user/group ids who should be reminded
Jean-Philippe Lang
Allow filtering of Redmine Reminders by Version (#18983)....
r13582 # * :version => name of target version for filtering issues (defaults to none)
Jean-Philippe Lang
Adds a rake task to send reminders. An email is sent to each user with a list of the issues due in the next days, if any....
r1445 def self.reminders(options={})
days = options[:days] || 7
project = options[:project] ? Project.find(options[:project]) : nil
tracker = options[:tracker] ? Tracker.find(options[:tracker]) : nil
Jean-Philippe Lang
Raise an error if version is not found (#18983)....
r13583 target_version_id = options[:version] ? Version.named(options[:version]).pluck(:id) : nil
if options[:version] && target_version_id.blank?
raise ActiveRecord::RecordNotFound.new("Couldn't find Version with named #{options[:version]}")
end
Eric Davis
Added a users options to the reminders email...
r4053 user_ids = options[:users]
Jean-Philippe Lang
Host setting should contain the path prefix (Redmine base URL) to properly generate links in emails that are sent offline (#2122)....
r1987
Jean-Philippe Lang
Code cleanup....
r10154 scope = Issue.open.where("#{Issue.table_name}.assigned_to_id IS NOT NULL" +
Jean-Philippe Lang
Use scopes instead of ARCondition....
r7967 " AND #{Project.table_name}.status = #{Project::STATUS_ACTIVE}" +
Jean-Philippe Lang
Code cleanup....
r10154 " AND #{Issue.table_name}.due_date <= ?", days.day.from_now.to_date
Jean-Philippe Lang
Use scopes instead of ARCondition....
r7967 )
Jean-Philippe Lang
Code cleanup....
r10154 scope = scope.where(:assigned_to_id => user_ids) if user_ids.present?
scope = scope.where(:project_id => project.id) if project
Jean-Philippe Lang
Raise an error if version is not found (#18983)....
r13583 scope = scope.where(:fixed_version_id => target_version_id) if target_version_id.present?
Jean-Philippe Lang
Code cleanup....
r10154 scope = scope.where(:tracker_id => tracker.id) if tracker
Toshi MARUYAMA
remove unneeded Relation#all from Mailer model...
r12448 issues_by_assignee = scope.includes(:status, :assigned_to, :project, :tracker).
group_by(&:assigned_to)
Jean-Philippe Lang
Fixed that the reminder email excludes issues assigned to groups (#11723)....
r10152 issues_by_assignee.keys.each do |assignee|
if assignee.is_a?(Group)
assignee.users.each do |user|
issues_by_assignee[user] ||= []
issues_by_assignee[user] += issues_by_assignee[assignee]
end
end
end
Jean-Philippe Lang
Adds a rake task to send reminders. An email is sent to each user with a list of the issues due in the next days, if any....
r1445 issues_by_assignee.each do |assignee, issues|
Toshi MARUYAMA
replace Mailer deliver syntax to Rails3 style at reminders method of mailer model...
r9479 reminder(assignee, issues, days).deliver if assignee.is_a?(User) && assignee.active?
Jean-Philippe Lang
Adds a rake task to send reminders. An email is sent to each user with a list of the issues due in the next days, if any....
r1445 end
end
Toshi MARUYAMA
remove trailing white-spaces from mailer model source....
r5696
Jean-Philippe Lang
Adds an option to enable/disable email notifications during a project copy (#4672)....
r3494 # Activates/desactivates email deliveries during +block+
def self.with_deliveries(enabled = true, &block)
was_enabled = ActionMailer::Base.perform_deliveries
ActionMailer::Base.perform_deliveries = !!enabled
yield
ensure
ActionMailer::Base.perform_deliveries = was_enabled
end
Jean-Philippe Lang
Do not send an email with no recipient, cc or bcc (closes #743)....
r1160
Jean-Philippe Lang
Fixed: reminder mails are not sent when delivery_method is :async_smtp (#5058)....
r9233 # Sends emails synchronously in the given block
def self.with_synched_deliveries(&block)
saved_method = ActionMailer::Base.delivery_method
if m = saved_method.to_s.match(%r{^async_(.+)$})
Jean-Philippe Lang
Fixed that Mailer.with_synched_deliveries does not use delivery settings (#11550)....
r9964 synched_method = m[1]
ActionMailer::Base.delivery_method = synched_method.to_sym
ActionMailer::Base.send "#{synched_method}_settings=", ActionMailer::Base.send("async_#{synched_method}_settings")
Jean-Philippe Lang
Fixed: reminder mails are not sent when delivery_method is :async_smtp (#5058)....
r9233 end
yield
ensure
ActionMailer::Base.delivery_method = saved_method
end
Jean-Philippe Lang
Fixed that the mail method should return a Mail::Message (#15113)....
r11980 def mail(headers={}, &block)
Jean-Philippe Lang
Don't overwrite headers that were already set (#14699)....
r13402 headers.reverse_merge! 'X-Mailer' => 'Redmine',
Jean-Philippe Lang
Add the following headers to email notifications (#830, #247):...
r1250 'X-Redmine-Host' => Setting.host_name,
Jean-Philippe Lang
Adds a List-Id header to all emails (#2879)....
r2497 'X-Redmine-Site' => Setting.app_title,
Jean-Philippe Lang
Mail handler should not ignore emails with x-auto-response-suppress header (#19558)....
r13777 'X-Auto-Response-Suppress' => 'All',
Jean-Philippe Lang
Merged rails-3.2 branch....
r9346 'Auto-Submitted' => 'auto-generated',
Jean-Philippe Lang
Restored List-Id header in email notifications (#10888)....
r9504 'From' => Setting.mail_from,
'List-Id' => "<#{Setting.mail_from.to_s.gsub('@', '.')}>"
Jean-Philippe Lang
Host setting should contain the path prefix (Redmine base URL) to properly generate links in emails that are sent offline (#2122)....
r1987
Jean-Philippe Lang
Add support for multiple email addresses per user (#4244)....
r13504 # Replaces users with their email addresses
[:to, :cc, :bcc].each do |key|
if headers[key].present?
headers[key] = self.class.email_addresses(headers[key])
end
end
Jean-Philippe Lang
Don't use #delete on String in Mailer....
r9117 # Removes the author from the recipients and cc
Toshi MARUYAMA
gender neutral source comment at app/models/mailer.rb...
r11758 # if the author does not want to receive notifications
# about what the author do
Jean-Philippe Lang
Fixed that locking and unlocking a user resets the email notification checkbox (#14020)....
r11609 if @author && @author.logged? && @author.pref.no_self_notified
Jean-Philippe Lang
Add support for multiple email addresses per user (#4244)....
r13504 addresses = @author.mails
headers[:to] -= addresses if headers[:to].is_a?(Array)
headers[:cc] -= addresses if headers[:cc].is_a?(Array)
Jean-Philippe Lang
Email notifications are now sent as Blind carbon copy by default. This can be changed in email notifications settings (new setting added)....
r931 end
Toshi MARUYAMA
remove trailing white-spaces from mailer model source....
r5696
Jean-Philippe Lang
Don't use #delete on String in Mailer....
r9117 if @author && @author.logged?
Jean-Philippe Lang
Adds a X-Redmine-Sender header to email notifications (#5643)....
r8665 redmine_headers 'Sender' => @author.login
end
Jean-Philippe Lang
Email notifications are now sent as Blind carbon copy by default. This can be changed in email notifications settings (new setting added)....
r931 # Blind carbon copy recipients
if Setting.bcc_recipients?
Jean-Philippe Lang
Merged rails-3.2 branch....
r9346 headers[:bcc] = [headers[:to], headers[:cc]].flatten.uniq.reject(&:blank?)
headers[:to] = nil
headers[:cc] = nil
end
if @message_id_object
headers[:message_id] = "<#{self.class.message_id_for(@message_id_object)}>"
end
if @references_objects
Jean-Philippe Lang
Role-based issue custom field visibility (#5037)....
r11782 headers[:references] = @references_objects.collect {|o| "<#{self.class.references_for(o)}>"}.join(' ')
Jean-Philippe Lang
Merged rails-3.2 branch....
r9346 end
Jean-Philippe Lang
Fixed that the mail method should return a Mail::Message (#15113)....
r11980 m = if block_given?
super headers, &block
else
super headers do |format|
format.text
format.html unless Setting.plain_text_mail?
end
Jean-Philippe Lang
Host setting should contain the path prefix (Redmine base URL) to properly generate links in emails that are sent offline (#2122)....
r1987 end
Jean-Philippe Lang
Merged rails-3.2 branch....
r9346 set_language_if_valid @initial_language
Jean-Philippe Lang
Fixed that the mail method should return a Mail::Message (#15113)....
r11980
m
Jean-Philippe Lang
Merged rails-3.2 branch....
r9346 end
def initialize(*args)
@initial_language = current_language
set_language_if_valid Setting.default_language
super
end
Toshi MARUYAMA
remove trailing white-space from app/models/mailer.rb...
r11672
Jean-Philippe Lang
Merged rails-3.2 branch....
r9346 def self.deliver_mail(mail)
return false if mail.to.blank? && mail.cc.blank? && mail.bcc.blank?
Jean-Philippe Lang
Log email delivery errors (#14403)....
r11780 begin
# Log errors when raise_delivery_errors is set to false, Rails does not
mail.raise_delivery_errors = true
super
rescue Exception => e
if ActionMailer::Base.raise_delivery_errors
raise e
else
Rails.logger.error "Email delivery error: #{e.message}"
end
end
Jean-Philippe Lang
Added an option on 'My account' for users who don't want to be notified of changes that they make....
r886 end
Jean-Philippe Lang
Host setting should contain the path prefix (Redmine base URL) to properly generate links in emails that are sent offline (#2122)....
r1987
Jean-Philippe Lang
Merged rails-3.2 branch....
r9346 def self.method_missing(method, *args, &block)
if m = method.to_s.match(%r{^deliver_(.+)$})
Jean-Philippe Lang
Adds a deprecation warning to Mailer.deliver_*....
r9456 ActiveSupport::Deprecation.warn "Mailer.deliver_#{m[1]}(*args) is deprecated. Use Mailer.#{m[1]}(*args).deliver instead."
Jean-Philippe Lang
Merged rails-3.2 branch....
r9346 send(m[1], *args).deliver
Jean-Philippe Lang
Sets proper content type for plain text mails (#3970)....
r2847 else
Jean-Philippe Lang
Merged rails-3.2 branch....
r9346 super
Jean-Philippe Lang
Sets proper content type for plain text mails (#3970)....
r2847 end
Nicolas Chuche
add plain text option for mail #2029...
r1930 end
Jean-Philippe Lang
Host setting should contain the path prefix (Redmine base URL) to properly generate links in emails that are sent offline (#2122)....
r1987
Jean-Philippe Lang
Add support for multiple email addresses per user (#4244)....
r13504 # Returns an array of email addresses to notify by
# replacing users in arg with their notified email addresses
#
# Example:
# Mailer.email_addresses(users)
# => ["foo@example.net", "bar@example.net"]
def self.email_addresses(arg)
arr = Array.wrap(arg)
mails = arr.reject {|a| a.is_a? Principal}
users = arr - mails
if users.any?
mails += EmailAddress.
where(:user_id => users.map(&:id)).
where("is_default = ? OR notify = ?", true, true).
pluck(:address)
end
mails
end
Jean-Philippe Lang
Merged rails-3.2 branch....
r9346 private
# Appends a Redmine header field (name is prepended with 'X-Redmine-')
def redmine_headers(h)
h.each { |k,v| headers["X-Redmine-#{k}"] = v.to_s }
end
Toshi MARUYAMA
remove trailing white-spaces from mailer model source....
r5696
Jean-Philippe Lang
Role-based issue custom field visibility (#5037)....
r11782 def self.token_for(object, rand=true)
Toshi MARUYAMA
remove trailing white-spaces from mailer model source....
r5696 timestamp = object.send(object.respond_to?(:created_on) ? :created_on : :updated_on)
Jean-Philippe Lang
Role-based issue custom field visibility (#5037)....
r11782 hash = [
"redmine",
"#{object.class.name.demodulize.underscore}-#{object.id}",
timestamp.strftime("%Y%m%d%H%M%S")
]
if rand
hash << Redmine::Utils.random_hex(8)
end
Jean-Philippe Lang
Mailer.token_for generates invalid message_id when using from address with full name (#16619)....
r12851 host = Setting.mail_from.to_s.strip.gsub(%r{^.*@|>}, '')
Jean-Philippe Lang
Adds Message-Id and References headers to email notifications so that issues and messages threads can be displayed by email clients (#1401)....
r2279 host = "#{::Socket.gethostname}.redmine" if host.empty?
Jean-Philippe Lang
Role-based issue custom field visibility (#5037)....
r11782 "#{hash.join('.')}@#{host}"
end
# Returns a Message-Id for the given object
def self.message_id_for(object)
token_for(object, true)
end
# Returns a uniq token for a given object referenced by all notifications
# related to this object
def self.references_for(object)
token_for(object, false)
Jean-Philippe Lang
Adds Message-Id and References headers to email notifications so that issues and messages threads can be displayed by email clients (#1401)....
r2279 end
Toshi MARUYAMA
remove trailing white-spaces from mailer model source....
r5696
Jean-Philippe Lang
Adds Message-Id and References headers to email notifications so that issues and messages threads can be displayed by email clients (#1401)....
r2279 def message_id(object)
@message_id_object = object
end
Toshi MARUYAMA
remove trailing white-spaces from mailer model source....
r5696
Jean-Philippe Lang
Adds Message-Id and References headers to email notifications so that issues and messages threads can be displayed by email clients (#1401)....
r2279 def references(object)
@references_objects ||= []
@references_objects << object
end
Toshi MARUYAMA
remove trailing white-spaces from mailer model source....
r5696
Jean-Philippe Lang
Log info when sending an email notification....
r3241 def mylogger
Toshi MARUYAMA
replace RAILS_DEFAULT_LOGGER of mylogger() to Rails.logger at app/models/mailer.rb...
r7364 Rails.logger
Jean-Philippe Lang
Log info when sending an email notification....
r3241 end
Jean-Philippe Lang
Adds Message-Id and References headers to email notifications so that issues and messages threads can be displayed by email clients (#1401)....
r2279 end