邮件从smtp用户名设置发送而不是从ActionMailer rails中的“from”方法发送

时间:2014-12-02 04:37:12

标签: ruby-on-rails-4 ruby-2.1

在user_mailer.rb

class UserMailer < ActionMailer::Base
  default from: "email.1@gmail.com"
  def approved_mail(user)
    @user = user
    @greeting = "Hi"

    mail to: @user.email
  end
end  

在development.rb

config.action_mailer.smtp_settings = {
  address: "smtp.gmail.com",
  port: 587,
  domain: "gmail.com",
  authentication: "plain",
  enable_starttls_auto: true,
  user_name: "email.2@gmail.com",
  password: ENV["GMAIL_PASSWORD"]
}  

我收到来自&#34; email.2@gmail.com"的电子邮件;为什么不来自&#34; email.1@gmail.com"等待澄清的人。

2 个答案:

答案 0 :(得分:2)

smtp_settings中,如果我们的邮件服务器需要身份验证,我们需要设置user_namepassword

在您的情况下,您已在development.rb文件中为'email.2@gmail.com'提供了身份验证。因此,动作邮件将忽略default from: "email.1@gmail.com",因为它无法对其进行身份验证。

答案 1 :(得分:1)

user_name中的

smtp_settings仅指用于连接SMTP服务器的身份验证名称。

将此添加到您的development.rb

config.action_mailer.default_options = { from: "email.2@gmail.com" }