diff --git a/app/mailers/emails/groups.rb b/app/mailers/emails/groups.rb index 1654fc55bca..39527b00e9f 100644 --- a/app/mailers/emails/groups.rb +++ b/app/mailers/emails/groups.rb @@ -4,7 +4,7 @@ module Emails @membership = UsersGroup.find(user_group_id) @group = @membership.group @target_url = group_url(@group) - mail(to: @membership.user.email, + mail(cc: @membership.user.email, subject: subject("Access to group was granted")) end end diff --git a/app/mailers/emails/issues.rb b/app/mailers/emails/issues.rb index a096df9dc0d..50676ac10cb 100644 --- a/app/mailers/emails/issues.rb +++ b/app/mailers/emails/issues.rb @@ -6,7 +6,7 @@ module Emails @target_url = project_issue_url(@project, @issue) set_message_id("issue_#{issue_id}") mail(from: sender(@issue.author_id), - to: recipient(recipient_id), + cc: recipient(recipient_id), subject: subject("#{@issue.title} (##{@issue.iid})")) end @@ -17,7 +17,7 @@ module Emails @target_url = project_issue_url(@project, @issue) set_reference("issue_#{issue_id}") mail(from: sender(updated_by_user_id), - to: recipient(recipient_id), + cc: recipient(recipient_id), subject: subject("#{@issue.title} (##{@issue.iid})")) end @@ -28,7 +28,7 @@ module Emails @target_url = project_issue_url(@project, @issue) set_reference("issue_#{issue_id}") mail(from: sender(updated_by_user_id), - to: recipient(recipient_id), + cc: recipient(recipient_id), subject: subject("#{@issue.title} (##{@issue.iid})")) end @@ -40,7 +40,7 @@ module Emails @target_url = project_issue_url(@project, @issue) set_reference("issue_#{issue_id}") mail(from: sender(updated_by_user_id), - to: recipient(recipient_id), + cc: recipient(recipient_id), subject: subject("#{@issue.title} (##{@issue.iid})")) end end diff --git a/app/mailers/emails/merge_requests.rb b/app/mailers/emails/merge_requests.rb index ea5671c4502..6b46cc90e08 100644 --- a/app/mailers/emails/merge_requests.rb +++ b/app/mailers/emails/merge_requests.rb @@ -6,7 +6,7 @@ module Emails @target_url = project_merge_request_url(@project, @merge_request) set_message_id("merge_request_#{merge_request_id}") mail(from: sender(@merge_request.author_id), - to: recipient(recipient_id), + cc: recipient(recipient_id), subject: subject("#{@merge_request.title} (##{@merge_request.iid})")) end @@ -17,7 +17,7 @@ module Emails @target_url = project_merge_request_url(@project, @merge_request) set_reference("merge_request_#{merge_request_id}") mail(from: sender(updated_by_user_id), - to: recipient(recipient_id), + cc: recipient(recipient_id), subject: subject("#{@merge_request.title} (##{@merge_request.iid})")) end @@ -28,7 +28,7 @@ module Emails @target_url = project_merge_request_url(@project, @merge_request) set_reference("merge_request_#{merge_request_id}") mail(from: sender(updated_by_user_id), - to: recipient(recipient_id), + cc: recipient(recipient_id), subject: subject("#{@merge_request.title} (##{@merge_request.iid})")) end @@ -38,7 +38,7 @@ module Emails @target_url = project_merge_request_url(@project, @merge_request) set_reference("merge_request_#{merge_request_id}") mail(from: sender(updated_by_user_id), - to: recipient(recipient_id), + cc: recipient(recipient_id), subject: subject("#{@merge_request.title} (##{@merge_request.iid})")) end end diff --git a/app/mailers/emails/notes.rb b/app/mailers/emails/notes.rb index 8d1f17b0f81..d6ab63fe68c 100644 --- a/app/mailers/emails/notes.rb +++ b/app/mailers/emails/notes.rb @@ -6,7 +6,7 @@ module Emails @project = @note.project @target_url = project_commit_url(@project, @commit, anchor: "note_#{@note.id}") mail(from: sender(@note.author_id), - to: recipient(recipient_id), + cc: recipient(recipient_id), subject: subject("#{@commit.title} (#{@commit.short_id})")) end @@ -17,7 +17,7 @@ module Emails @target_url = project_issue_url(@project, @issue, anchor: "note_#{@note.id}") set_reference("issue_#{@issue.id}") mail(from: sender(@note.author_id), - to: recipient(recipient_id), + cc: recipient(recipient_id), subject: subject("#{@issue.title} (##{@issue.iid})")) end @@ -28,7 +28,7 @@ module Emails @target_url = project_merge_request_url(@project, @merge_request, anchor: "note_#{@note.id}") set_reference("merge_request_#{@merge_request.id}") mail(from: sender(@note.author_id), - to: recipient(recipient_id), + cc: recipient(recipient_id), subject: subject("#{@merge_request.title} (##{@merge_request.iid})")) end @@ -37,7 +37,7 @@ module Emails @project = @note.project @target_url = project_wall_url(@note.project, anchor: "note_#{@note.id}") mail(from: sender(@note.author_id), - to: recipient(recipient_id), + cc: recipient(recipient_id), subject: subject("Note on wall")) end end diff --git a/app/mailers/emails/projects.rb b/app/mailers/emails/projects.rb index 9f99c11ea30..6017d9192ec 100644 --- a/app/mailers/emails/projects.rb +++ b/app/mailers/emails/projects.rb @@ -4,7 +4,7 @@ module Emails @users_project = UsersProject.find user_project_id @project = @users_project.project @target_url = project_url(@project) - mail(to: @users_project.user.email, + mail(cc: @users_project.user.email, subject: subject("Access to project was granted")) end @@ -12,7 +12,7 @@ module Emails @user = User.find user_id @project = Project.find project_id @target_url = project_url(@project) - mail(to: @user.email, + mail(cc: @user.email, subject: subject("Project was moved")) end @@ -30,7 +30,7 @@ module Emails end mail(from: sender(author_id), - to: recipient, + cc: recipient, subject: subject("New push to repository")) end end diff --git a/app/mailers/notify.rb b/app/mailers/notify.rb index 84a0da0129d..8eea8cf25e0 100644 --- a/app/mailers/notify.rb +++ b/app/mailers/notify.rb @@ -1,4 +1,6 @@ class Notify < ActionMailer::Base + include ActionDispatch::Routing::PolymorphicRoutes + include Emails::Issues include Emails::MergeRequests include Emails::Notes @@ -16,6 +18,7 @@ class Notify < ActionMailer::Base default_url_options[:script_name] = Gitlab.config.gitlab.relative_url_root default from: Proc.new { default_sender_address.format } + default to: Proc.new { project_sender_address.format } default reply_to: "noreply@#{Gitlab.config.gitlab.host}" # Just send email with 2 seconds delay @@ -32,6 +35,17 @@ class Notify < ActionMailer::Base address end + # The default email address to send emails to. Includes the project name if possible. + def project_sender_address + if @project + address = default_sender_address + address.display_name = @project.name_with_namespace + address + else + default_sender_address + end + end + # Return an email address that displays the name of the sender. # Only the displayed name changes; the actual email address is always the same. def sender(sender_id) diff --git a/spec/mailers/notify_spec.rb b/spec/mailers/notify_spec.rb index 547268d44f0..6725e350898 100644 --- a/spec/mailers/notify_spec.rb +++ b/spec/mailers/notify_spec.rb @@ -10,7 +10,7 @@ describe Notify do shared_examples 'a multiple recipients email' do it 'is sent to the given recipient' do - should deliver_to recipient.email + should cc_to recipient.email end end @@ -141,7 +141,7 @@ describe Notify do end it 'is sent to the assignee' do - should deliver_to assignee.email + should cc_to assignee.email end end @@ -394,7 +394,7 @@ describe Notify do end it 'is sent to the given recipient' do - should deliver_to recipient.email + should cc_to recipient.email end it 'contains the message from the note' do @@ -538,7 +538,7 @@ describe Notify do end it 'is sent to recipient' do - should deliver_to 'devs@company.name' + should cc_to 'devs@company.name' end it 'has the correct subject' do diff --git a/spec/services/issues/close_service_spec.rb b/spec/services/issues/close_service_spec.rb index d4f2cc1339b..7324650d534 100644 --- a/spec/services/issues/close_service_spec.rb +++ b/spec/services/issues/close_service_spec.rb @@ -22,7 +22,7 @@ describe Issues::CloseService do it 'should send email to user2 about assign of new issue' do email = ActionMailer::Base.deliveries.last - email.to.first.should == user2.email + email.cc.first.should == user2.email email.subject.should include(issue.title) end diff --git a/spec/services/issues/update_service_spec.rb b/spec/services/issues/update_service_spec.rb index 347560414e7..47d18565034 100644 --- a/spec/services/issues/update_service_spec.rb +++ b/spec/services/issues/update_service_spec.rb @@ -31,7 +31,7 @@ describe Issues::UpdateService do it 'should send email to user2 about assign of new issue' do email = ActionMailer::Base.deliveries.last - email.to.first.should == user2.email + email.cc.first.should == user2.email email.subject.should include(issue.title) end diff --git a/spec/services/merge_requests/close_service_spec.rb b/spec/services/merge_requests/close_service_spec.rb index a504f916b08..2c5a7c4f26c 100644 --- a/spec/services/merge_requests/close_service_spec.rb +++ b/spec/services/merge_requests/close_service_spec.rb @@ -22,7 +22,7 @@ describe MergeRequests::CloseService do it 'should send email to user2 about assign of new merge_request' do email = ActionMailer::Base.deliveries.last - email.to.first.should == user2.email + email.cc.first.should == user2.email email.subject.should include(merge_request.title) end diff --git a/spec/services/merge_requests/update_service_spec.rb b/spec/services/merge_requests/update_service_spec.rb index af5d3a3dc81..42ac05862b3 100644 --- a/spec/services/merge_requests/update_service_spec.rb +++ b/spec/services/merge_requests/update_service_spec.rb @@ -31,7 +31,7 @@ describe MergeRequests::UpdateService do it 'should send email to user2 about assign of new merge_request' do email = ActionMailer::Base.deliveries.last - email.to.first.should == user2.email + email.cc.first.should == user2.email email.subject.should include(merge_request.title) end