在Rails中记录外发电子邮件

时间:2013-08-15 08:01:02

标签: ruby-on-rails

我有2个型号,用户电子邮件

用户创建后我有一个 after_create 回调,它会向用户的电子邮件地址发送一封确认电子邮件。

user.rb

after_create :create_confirmation_email

private

    def creation_confirmation_email
      UserMailer.account_create_confirmation(self).deliver
    end

上面的 creation_confirmation_email 连接到 mailer / user_mailer.rb

中的方法

user_mailer.rb

def account_create_confirmation(user)
    I18n.locale = 'pt'
    @user = user

    mail(from: 'no-reply@miigo.com.br', to: @user.email, subject: 'Bem-vindo ao Miigo') do |format|
      format.text
      format.html
    end
  end

我的电子邮件模型具有以下属性:

reply_to: string
first_name: string
last_name :string
subject: string

现在我想要的是一个在每次交付后记录确认电子邮件信息的操作。

您可以为此建议解决方法或回调吗?

任何变通办法都将受到赞赏

1 个答案:

答案 0 :(得分:1)

你总是可以在ActionMailer课程中写回调,this guide解释所有这些。

如果你正在使用Rails 3,IIRC,你可以通过加入ActionMailerAbstractController::Callbacks类添加回调功能。

类似的东西:

class MyMailer < ActionMailer::Base
  include AbstractController::Callbacks

  after_filter :audit_email

  def account_create_confirmation(user)
    @subject = 'Bem-vindo ao Miigo'
    # ...
  end

  def audit_email
    EmailAudit.create(subject: @subject, ...)
  end
end