Read more

Do not deliver mails when there are no recipients set

Dominik Schöler
March 29, 2011Software engineer at makandra GmbH

When using ActionMailer, you can set an array of email addresses as recipients. If this array is generated by e.g. collecting email addresses from the database, it might sometimes be empty.

Illustration online protection

Rails Long Term Support

Rails LTS provides security patches for old versions of Ruby on Rails (2.3, 3.2, 4.2 and 5.2)

  • Prevents you from data breaches and liability risks
  • Upgrade at your own pace
  • Works with modern Rubies
Read more Show archive.org snapshot

To prevent ActionMailer to deliver mails to nobody, simply overwrite the deliver! method like this:

# In your mailer.rb
def deliver!(mail = @mail)
  return false if (recipients.nil? || recipients.empty?) && (cc.nil? || cc.empty?) && (bcc.nil? || bcc.empty?)
  super
end
Posted by Dominik Schöler to makandra dev (2011-03-29 11:53)