Do not deliver mails when there are no recipients set

Updated . Posted . Visible to the public.

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.

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
Dominik Schöler
Last edit
License
Source code in this card is licensed under the MIT License.
Posted by Dominik Schöler to makandra dev (2011-03-29 09:53)