web-dev-qa-db-fra.com

Rails 4, comment configurer correctement les paramètres smtp (gmail)

J'essaie de créer un formulaire de contact dans Rails 4. J'ai creusé ici et j'ai réussi à faire fonctionner la plupart des choses. (suivi le travail de @ sethfri ici Formulaire de contact Mailer in Rails 4 )

À l'heure actuelle, je suis en mesure de remplir ma boîte de formulaire et cliquez sur Envoyer. Dans mon serveur Rails, il est indiqué que le courrier était sortant de mon adresse e-mail, mais je ne reçois rien dans ma boîte de messagerie Gmail. Je pense donc que mes paramètres smtp ne sont pas corrects. Mes paramètres smtp sont:

... config/environnements/development.rb

config.action_mailer.raise_delivery_errors = true
  config.action_mailer.perform_deliveries = true

  config.action_mailer.default_url_options = { :Host => 'localhost:3000' }

  config.action_mailer.delivery_method = :smtp
  config.action_mailer.smtp_settings = {
    :address => "smtp.gmail.com",
    :port => "587",
    :domain => "mydomain.net",
    :user_name => "[email protected]",
    :password => "myGmailPassword",
    :authentication => "plain",
    :enable_starttls_auto => true
  } 

J'ai aussi ajouté dans .../config/initializers/smtp_settings.rb

ActionMailer::Base.smtp_settings = {
    :address => "smtp.gmail.com",
    :port => "587",
    :domain => "mydomain.net",
    :user_name => "[email protected]",
    :password => "gmailPassword",
    :authentication => "plain",
    :enable_starttls_auto => true
}

Qu'est-ce qui me manque/je fais mal? J'ai joué avec plusieurs choses (changé default_url en port 1025, changé: port => "587" en: port => 587) sans succès.

Merci pour l'aide!

45
ResrieC

Vous devez définir le domaine correctement. Actuellement dans le code posté son "mydomain.net". Changez-le en gmail.com si vous voulez l'envoyer via gmail.

config.action_mailer.smtp_settings = {
  address:              'smtp.gmail.com',
  port:                 587,
  domain:               'gmail.com',
  user_name:            '[email protected]',
  password:             'yourpassword',
  authentication:       :plain,
  enable_starttls_auto: true
}
52
TarunJadhwani

Si vous rencontrez des erreurs telles que Net :: SMTPAuthenticationError lors de l'utilisation de gmail pour l'envoi d'e-mails (communs aux comptes Google Apps), accédez à vos paramètres gmail et activez des applications moins sécurisées pour que l'application fonctionne.

35
Kim Miller

Après quelques heures à chercher comment faire fonctionner cela pour moi, je trouve un moyen de le faire fonctionner. Pour ma part, je devais effectuer une vérification en deux étapes et utiliser le mot de passe de l'application Gmail.

Lorsque vous activez la vérification en deux étapes (également appelée authentification à deux facteurs), vous ajoutez une couche de sécurité supplémentaire à votre compte. Vous vous connectez avec quelque chose que vous connaissez (votre mot de passe) et quelque chose que vous possédez (un code envoyé à votre téléphone).

Configurer la vérification en deux étapes

  1. Accédez à la page Vérification en 2 étapes . Vous devrez peut-être vous connecter à votre compte Google.
  2. Dans la zone "Vérification en deux étapes" à droite, sélectionnez Démarrer la configuration.
  3. Suivez le processus d'installation pas à pas.

Un mot de passe d'application est un code d'accès à 16 chiffres qui donne à une application ou à un appareil la permission d'accéder à votre compte Google. Si vous utilisez la vérification en deux étapes et que vous voyez une erreur «mot de passe incorrect» lorsque vous essayez d'accéder à votre compte Google, un mot de passe de l'application peut résoudre le problème. La plupart du temps, il vous suffit de saisir un mot de passe d'application une fois par application ou appareil, alors ne vous inquiétez pas de le mémoriser.

Comment générer un mot de passe d'application

  1. Visitez votre Mots de passe de l'application page. Vous pouvez être invité à vous connecter à votre compte Google.
  2. En bas, cliquez sur Sélectionner une application et choisissez celle que vous utilisez.
  3. Cliquez sur Sélectionner le périphérique et choisissez le périphérique que vous utilisez.
  4. Sélectionnez Générer.
  5. Suivez les instructions pour entrer le mot de passe de l'application (le code de 16 caractères dans la barre jaune) sur votre appareil.
  6. Sélectionnez Terminé
5
Gabriel Sigouin

Google recommande d'utiliser OAuth 2.0 pour le processus de connexion. Cette configuration n'est "pas si sûre" pour Google, mais ils la tolèrent. Vous devez autoriser les "connexions moins sûres" dans les paramètres de votre compte Google ou utiliser la méthode OAuth . https://developers.google.com/identity/protocols/OAuth2

Leur bibliothèque pour Ruby est toujours alpha . Il semble y avoir quelques joyaux prolongeant ActionMailer pour OAuth, mais je ne les ai jamais utilisés.

0
DOK