Actionmailer - 如何设置“from”部分?

时间:2012-05-08 13:59:07

标签: ruby-on-rails-3 email actionmailer

这是/config/initializers/setup_mail.rb中的配置文件:

ActionMailer::Base.smtp_settings = {  
  :address              => "smtp.gmail.com",  
  :port                 => 587,  
  :domain               => "...something...",  
  :user_name            => "my_gmail_name",  
  :password             => "my_gmail_pass",
  :authentication       => "plain",  
  :enable_starttls_auto => true  
}

这是我使用的方法的Mailer's类:

class Notifierpass < ActionMailer::Base
  default from: "no-reply@my-domain.com"

  def forgot_password(user)    
    @reset_password_link = reset_password_url(user.perishable_token)

    mail(:from => "no-reply@my-domain.com", :to => user.email, :subject => "New passwordt")  
  end
end

发送电子邮件正常,我的问题是,在电子邮件的字段中始终是 my_user_name 而不是 no-reply@my-domain.com < /强>

问题出在哪里?为什么仍然使用我的gmail名称?

2 个答案:

答案 0 :(得分:1)

GMail只允许您从您的帐户或您已正确配置的其他电子邮件地址发送电子邮件。要从其他电子邮件地址发送,您需要将其添加到Gmail设置中。您只能添加可以从中接收的地址。

答案 1 :(得分:0)

当你连接到gmail的smtp服务器时(比如在你的配置中),已经分配了authentication_information,因为你将使用某个具有已知电子邮件地址的user_id发送电子邮件。因此谷歌将不接受任何:from =&gt; “value”但它适合:from参数和auth_info返回的电子邮件。

希望这有助于你