Alias mail method in class Mailer < ActionMailer::Base


#1

Hello,

I have a class in the core application,

class Mailer < ActionMailer::Base
.
.
def mail(headers={}, &block)
headers.merge! ‘Auto-Submitted’ => ‘auto-generated’,
‘From’ => Setting.mail_from,
‘List-Id’ => “<#{Setting.mail_from.to_s.gsub(’@’, ‘.’)}>”
.
.
m
end
end

I need to patch this class, (As a plugin),
So that the ‘From’ is configurable.
Here is the plugin patch I tried and failed to get the expected result.

module Patches
module MailerPatch
def self.included(base) # :nodoc:
base.send(:include, InstanceMethods)
base.class_eval do
unloadable
alias_method_chain :mail, :patch
end
end
end

module InstanceMethods
def mail_with_patch(headers={}, &block)
m = mail_without_patch(headers, &block)
m.from = User.current.mail
m
end
end
end
Mailer.send(:include, Patches::MailerPatch)


Am I doing something wrong here, Please help me.
Thank You.