带有gmail smtp的Rails 4邮件程序

时间:2015-09-21 07:57:58

标签: ruby-on-rails actionmailer

我希望将Mailer of Rails 4与Gmail的smtp配置结合使用 在我的开发文件中,我设置了:

  config.action_mailer.perform_deliveries = true
  config.action_mailer.delivery_method = :smtp
  config.action_mailer.smtp_settings = {
      :address              => "smtp.gmail.com",
      :port                 => 587,
      :domain               => "gmail.com",
      :user_name            => "mymail@gmail.com",
      :password             => "mygmailpassword",
      :authentication       => :plain,
      :enable_starttls_auto => true
  }

但我没有收到任何邮件。 这是终端的输出:

To: antonioni.giovanni9@gmail.com
Message-ID: <55ffb56da9e91_aa929362303435c@pc-rails.mail>
Subject: Conferma ordine
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_55ffb56da807b_aa92936230342e1";
 charset=UTF-8
Content-Transfer-Encoding: 7bit


----==_mimepart_55ffb56da807b_aa92936230342e1
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: quoted-printable

所以我的应用程序尝试发送电子邮件,但这不会出现在我的Gmail控制台上。 有什么想法解决这个问题吗?

2 个答案:

答案 0 :(得分:4)

Gmail smtp服务需要APP密码才能从Gmail帐户发送邮件(有关详细信息,请访问此link)。生成密码后,您必须更改开发文件的配置:

  config.action_mailer.perform_deliveries = true
  config.action_mailer.delivery_method = :smtp
  config.action_mailer.smtp_settings = {
      :address              => "smtp.gmail.com",
      :port                 => 587,
      :domain               => "gmail.com",
      :user_name            => "mymail@gmail.com",
      :password             => "GENERATEDPASSWORD",
      :authentication       => :plain,
      :enable_starttls_auto => true
  }

然后重启服务器。 为了捕捉我设置的错误:config.action_mailer.raise_delivery_errors = true(感谢Dipak的提示)

答案 1 :(得分:0)