2013-10-15 1 views
0

Я установил почтовый перехватчик, но я не могу заставить его дублировать письмо по своему усмотрению.Дубликат почты с mail_interceptor в Rails

class MailDuplicator 
    def self.delivering_email(message) 

    copy = message 
    copy.subject = "[Duplicata] To: #{message.to} - #{message.subject}" 
    copy.to = "Logger <[email protected]>" 
    copy.deliver 

    return message 
    end 
end 

Я делаю что-то неправильно?

ответ

1

Нашли решение: не используйте mail_interceptor, но mail_observer, который называется после, отправляется почта.

# LIB (/lib/mail_duplicator.rb) 
class MailDuplicator 
    def self.delivered_email(message) 
    duplicate_email = '[email protected]' 

    if !message.to.include?(duplicate_email) # Avoid stack level too deep error 
     message.subject = "[Duplicata] To: #{message.to} - #{message.subject}" 
     message.to = duplicate_email 

     message.deliver 
    end 

    return message 
    end 
end 


# INITALIZER (/config/initializers/setup_mail.rb) 
require 'mail_duplicator' 
ActionMailer::Base.register_observer(MailDuplicator) 

Хотя я до сих пор не удалось дублировать Mail::Message объект, как я хотел бы сделать в первую ...