diff --git a/Changes.md b/Changes.md index 58736bc5..efd14e0e 100644 --- a/Changes.md +++ b/Changes.md @@ -1,6 +1,7 @@ HEAD ----------- +- ActionMailer.delay.method now only tries to deliver if method returns a valid message. - Logging now uses "MSG-#{Job ID}", not a random msg ID - Allow generic Redis provider as environment variable. [#443] - Add ability to customize sidekiq\_options with delay calls [#450] diff --git a/lib/sidekiq/extensions/action_mailer.rb b/lib/sidekiq/extensions/action_mailer.rb index 94feb4ad..29e86187 100644 --- a/lib/sidekiq/extensions/action_mailer.rb +++ b/lib/sidekiq/extensions/action_mailer.rb @@ -16,7 +16,10 @@ module Sidekiq def perform(yml) (target, method_name, args) = YAML.load(yml) - target.send(method_name, *args).deliver + msg = target.send(method_name, *args) + # The email method can return nil, which causes ActionMailer to return + # an undeliverable empty message. + msg.deliver if msg && msg.to && msg.from end end