Devise,admin_mailer&配置

时间:2014-12-07 00:16:11

标签: ruby-on-rails devise actionmailer

我正在使用我的rails 4 app。

在我让网站上线之前,我试图设置figaro,但就目前而言,我正在使用我的密码在production.rb管理我的测试电子邮件帐户。它不会长久不会这样,但我的设置遇到了问题。

我有两封admin_mailer电子邮件,当有人注册时会发送这些电子邮件。一封是给我的电子邮件,使用一个Gmail帐户让我知道他们已经注册。第二个是给用户的电子邮件,欢迎他们访问该网站。它应该是我设置的第二个电子邮件帐户发送的。

在我的produ.rb中,我有:

 config.action_mailer.smtp_settings = {
    address:              'smtp.gmail.com',
    port:                 ###,
    domain:               'gmail.com',
    user_name:            'firstemailaddress@gmail.com',
    password:             '###',
    authentication:       'plain',
    enable_starttls_auto: true  }

     {
      address:              'smtp.gmail.com',
      port:                 ###,
      domain:               'gmail.com',
      user_name:            'secondemailaddress@gmail.com',
      password:             '####',
      authentication:       'plain',
      enable_starttls_auto: true  }

在我的admin_mailer中,我将电子邮件的发件人设置为这些用户名中的一个或另一个。

但是,当我运行代码时,这两封电子邮件都是从第一个电子邮件地址发送的。

有没有人知道如何设置邮件,以便电子邮件从不同的地址发送?

谢谢

1 个答案:

答案 0 :(得分:0)

我认为每个邮件应该与一个电子邮件帐户相关联。您可以创建两个单独的邮件程序,并在每个邮件中定义smtp设置,而不是在production.rb中。

例如,app / mailers / first_mailer.rb:

class FirstMailer < ActionMailer::Base
  default from: 'firstemailaddress@gmail.com'
  self.delivery_method = :smtp
  self.smtp_settings = {
    # your gmail smtp settings here
  }

  def some_email(user)
    mail(to: user.email, subject: 'Subject')
  end
end

您可以致电FirstMailer.some_email(user).deliver发送此邮件。

同样,您然后创建另一个使用不同帐户的文件app / mailers / second_mailer.rb(以及不同的设置)。

可能有更干的方法可以做到这一点,但我知道这有用。