Rails Action_Mailer

时间:2015-01-09 01:01:41

标签: ruby-on-rails

我在Rails 4应用程序中使用admin mailer。

我有两封电子邮件在注册后发送。一个是我,另一个是给用户。它们应该从不同的电子邮件地址发送,每个电子邮件地址都在邮件程序方法的from字段中指定(如下所示)。问题是它们都是从第一种方法中指定为发件人的电子邮件地址发送的。

我的邮件程序方法是:

def new_user_waiting_for_approval(user)
    @user = user
    mail(to: "aa@gmail.com", from: "bb@gmail.com", 
    subject: "Registration Request #{user.first_name} #{user.last_name} <#{user.email}>")
  end

  def new_user_waiting_for_access(user)
    @user = user
    mail(to: user.email, from: "cc@gmail.com", subject: "Welcome, #{user.first_name}")
  end

在我的Admin_Mailer课程中,我有一个默认的&#39;来自:&#39;在上述第一种方法中指定为发件人的方法上方的电子邮件地址。这可能会覆盖方法本身中指定的from。

有谁知道如何在不同的方法中指定不同的发件人,以便我的电子邮件从相应的电子邮件地址发送?

谢谢

1 个答案:

答案 0 :(得分:0)

如果您无法通过更改配置来解决问题,可以使用下面给出的代码。

将此代码段添加到您的代码库中。

class Emailer < ActionMailer::Base
  def activation_instructions(recipients_emails, sender = nil, mail_subject = nil, text = "")
    subject       mail_subject || "Default subject"
    recipients    recipients_emails
    from          sender || "default_mail_id@abc.com"
    sent_on       Time.now
    content_type  "text/html"
    body          text
  end
end

您可以通过调用上面定义的方法发送邮件,如下所示。

Emailer.deliver_activation_instructions("recient@abc.com", "sender@abc.com", "Subject", "content")