Skip to content

Commit

Permalink
Merge pull request #9301 from eduardoj/fix-smtp-to-address
Browse files Browse the repository at this point in the history
Don't send emails to groups without an email
  • Loading branch information
danidoni committed Mar 31, 2020
2 parents 4fe5c96 + 949f3c3 commit 72b1c86
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 2 deletions.
6 changes: 4 additions & 2 deletions src/api/app/mailers/event_mailer.rb
Expand Up @@ -21,6 +21,9 @@ def event(subscribers, e)
subscribers = subscribers.to_a
return if subscribers.empty?

recipients = subscribers.map(&:display_name).reject(&:blank?)
return if recipients.empty?

set_headers
begin
locals = { event: e.expanded_payload }
Expand All @@ -33,15 +36,14 @@ def event(subscribers, e)

template_name = e.template_name
orig = e.originator
tos = subscribers.map(&:display_name)

if orig
orig = orig.display_name
else
orig = mail_sender
end

mail(to: tos.sort,
mail(to: recipients.sort,
subject: e.subject,
from: orig,
date: e.created_at) do |format|
Expand Down
11 changes: 11 additions & 0 deletions src/api/spec/mailers/event_mailer_spec.rb
Expand Up @@ -114,5 +114,16 @@
it { expect(mail.html_part.to_s).to include("I =E2=9D=A4=EF=B8=8F <a href=3D'https://build.example.com/users/") }
end
end

context 'when the subscriber has no email' do
let(:group) { create(:group, email: nil) }
let(:empty_event) { nil }
let(:subscribers) { [group] }
subject! { EventMailer.event(subscribers, empty_event).deliver_now }

it 'does not get delivered' do
expect(ActionMailer::Base.deliveries).to be_empty
end
end
end
end

0 comments on commit 72b1c86

Please sign in to comment.