J'essaie d'obtenir un e-mail de confirmation en utilisant un compte gmail. J'ai regardé autour de moi et rien n'est évident. Il n'y a aucune erreur ou quoi que ce soit, il n'envoie tout simplement pas
J'ai ceci comme initaliseur:
ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.perform_deliveries = true
ActionMailer::Base.raise_delivery_errors = true
ActionMailer::Base.smtp_settings = {
:address => "smtp.gmail.com",
:port => 587,
:domain => "gmail.com",
:user_name => "<address>@gmail.com",
:password => "<password>",
:authentication => "plain",
:enable_starttls_auto => true
}
ActionMailer::Base.default_url_options[:Host] = "localhost:3000"
Vous n'avez plus besoin de tlsmail
gem au moins avec Rails 3.2
Ce sera suffisant
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
:address => "smtp.gmail.com",
:port => 587,
:domain => 'baci.lindsaar.net',
:user_name => '<username>',
:password => '<password>',
:authentication => 'plain',
:enable_starttls_auto => true }
Du tout-puissant-guide configuration ActionMailer pour gmail
ajouter tlsmail au gemfile
gem 'tlsmail'
courir :
bundle install
ajoutez ces paramètres au fichier config/envirnoments/development.rb
YourApplicationName::Application.configure do
require 'tlsmail'
Net::SMTP.enable_tls(OpenSSL::SSL::VERIFY_NONE)
ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.perform_deliveries = true
ActionMailer::Base.raise_delivery_errors = true
ActionMailer::Base.smtp_settings = {
:address => "smtp.gmail.com",
:port => "587",
:domain => "gmail.com",
:enable_starttls_auto => true,
:authentication => :login,
:user_name => "<addreee>@gmail.com",
:password => "<password>"
}
config.action_mailer.raise_delivery_errors = true
Vous devez vérifier que [email protected] a bien envoyé l'e-mail. Nous avons eu des problèmes avec cela dans le passé lors de l'envoi d'e-mails de vérification via le serveur SMTP de Gmail, car l'envoi en vrac finit par ne pas envoyer du tout.
Je vous suggère de vous connecter à [email protected] et de vérifier qu'il n'y a pas de problème et que les e-mails sont envoyés.
Sinon, vous pouvez essayer un service comme Send Grid pour envoyer des e-mails sortants.
Alternativement, vous pouvez regarder dans votre serveur. Ou si vous êtes en développement, jetez un œil à log/development.log
. Je suis à peu près sûr que vous pouvez voir dans vos journaux qu'il essaie réellement d'envoyer le courrier.
Le problème est que Google ne fait pas confiance à votre adresse IP locale et que vos e-mails ne seront pas livrés (pas même dans le répertoire de spam). Il n'y a aucun moyen de contourner cela, mais en utilisant un serveur sur liste blanche.
Vous pouvez essayer cela en déployant votre application sur un serveur de production comme Heroku et en la testant.
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
:address => "smtp.gmail.com",
:port => 587,
:domain => 'baci.lindsaar.net',
:user_name => '<username>',
:password => '<password>',
:authentication => 'plain',
:enable_starttls_auto => true }
Le <username>
signifie saisir votre vrai nom d'utilisateur? Le <password>