2010-09-25 9 views
7

J'ai défini la suite.E-mail de confirmation de l'appareil sur rails3 utilisant gmail ne pas arriver

---------------------- 
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 } 

Toutefois, lorsque envoie l'e-mail legs de confirmation webbrick imprime l'e-mail dans le journal sans erreur, mais l'e-mail ne finit pas dans ma boîte de réception ou boîte de réception de spam.

Des idées?

EDIT:

I now get 

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

):

Je trouve que

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

avait été mis plus haut dans le fichier de configuration. Cependant, qu'est-ce que c'est à propos de l'émission d'une commande 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 

Brad

Répondre

5

j'ai eu le même problème; dans mon cas, était due à un bug (Net :: SMTP ne sait pas comment parler TLS, ce qui est requis par gmail) et je l'ai résolu comme expliqué here.

+0

Super merci. Cela fonctionne parfaitement :) – bradgonesurfing

+0

Quel fichier dois-je modifier pour envoyer un courriel à concevoir sign_up? – shibly

0

Plutôt que de désactiver la vérification de certificat SSL dans le monde, vous pouvez passer un paramètre supplémentaire à 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, 
} 

Vous devrez peut-être require 'openssl' pour obtenir cette constante.

Cette solution fonctionne également avec Pony, si vous incluez :openssl_verify_mode dans le hachage :via_options.

+0

Vous semblez avoir une virgule de fin supplémentaire à la fin. – Noz