2010-09-25 45 views
7

我已经设置了以下。确认电子邮件从devise on rails3使用Gmail不到达

---------------------- 
config/environments/development.rb 
---------------------- 
29 ActionMailer::Base.delivery_method = :smtp 
30 ActionMailer::Base.perform_deliveries = true 
31 ActionMailer::Base.raise_delivery_errors = true 
32 
33 ActionMailer::Base.smtp_settings = { 
34  :enable_starttls_auto => true, #this is the important stuff! 
35  :address  => 'smtp.gmail.com', 
36  :port   => 587, 
37  :domain   => 'foo.com', 
38  :authentication => :plain, 
39  :user_name  => '[email protected]', 
40  :password  => '---' 
41 } 

然而,当色器件发送确认电子邮件webbrick打印出 日志,没有错误的电子邮件,但邮件没有最终在我的收件箱或垃圾邮件收件箱 。

任何想法?

编辑:

I now get 

    Net::SMTPAuthenticationError (530 5.7.0 Must issue a STARTTLS command first. x13sm2646038bki.0 

):

我发现

---------------------- 
config/environments/development.rb 
---------------------- 
17 # Don't care if the mailer can't send 
18 config.action_mailer.raise_delivery_errors = false 

已经建立了较高的配置文件。然而,发布STARTTLS命令的这是什么?

SOLUTION:

---------------------- 
config/environments/development.rb 
---------------------- 
26 require 'tlsmail' #key but not always described 
27 Net::SMTP.enable_tls(OpenSSL::SSL::VERIFY_NONE) 
28 
29 ActionMailer::Base.delivery_method = :smtp 
30 ActionMailer::Base.perform_deliveries = true 
31 ActionMailer::Base.raise_delivery_errors = true 
32 
33 ActionMailer::Base.smtp_settings = { 
34  :enable_starttls_auto => true, #this is the important stuff! 
35  :address  => 'smtp.gmail.com', 
36  :port   => 587, 
37  :domain   => 'xtargets.com', 
38  :authentication => :plain, 
39  :user_name  => '-------', 
40  :password  => '-------' 
41 } 
42 

布拉德

回答

5

我有同样的问题;在我的情况下是由于一个错误(Net :: SMTP不说如何说TLS,这是gmail所要求的),我解释了它,如解释here

+0

非常感谢。这工作完美:) – bradgonesurfing 2010-09-25 17:25:09

+0

我必须编辑从设计sign_up电子邮件的哪个文件? – shibly 2011-10-09 01:44:35

0

而不是全局关闭SSL证书验证,你可以传递一个额外的参数smtp_settings:

config.action_mailer.smtp_settings = { 
    :address    => 'smtp.example.com', 
    :port     => '25', 
    :domain    => 'example.com', 
    :user_name   => '[email protected]', 
    :password    => 'secret', 
    :authentication  => 'plain', 
    :enable_starttls_auto => true, 
    :openssl_verify_mode => OpenSSL::SSL::VERIFY_NONE, 
} 

您可能还需要require 'openssl'得到那个常数。

如果您在:via_options散列中包含:openssl_verify_mode,此解决方案也适用于Pony

+0

你在最后似乎有一个额外的尾随逗号。 – Noz 2013-05-21 21:51:21