Net :: SMTPAuthenticationError lors de l’envoi de courrier électronique à partir de l’application Rails (dans un environnement intermédiaire)

J’envoie un email depuis mon application Rails. Cela fonctionne bien dans un environnement de développement, mais échoue lors de la mise en scène. Je reçois l’erreur suivante:

Net::SMTPAuthenticationError (534-5.7.14 <https://accounts.google.com/ContinueSignIn?plt=AKgnsbtdF0yjrQccTO2D_6) 

Notez que je n’ai pas de nom de domaine pour ma mise en scène.

Voici mes parameters dans staging.rb

 config.action_mailer.delivery_method = :smtp config.action_mailer.default_url_options = { :host => "my.ip.addr.here:80" } config.action_mailer.smtp_settings = { :address => "smtp.gmail.com", :port => 587, :domain => 'my.ip.addr.here:80' :user_name => "my_email_name@gmail.com", :password => "my_email_password", :authentication => 'login' } 

S’il vous plaît, aidez.

Modifier.

Après avoir ajouté :tls => true option je reçois

 OpenSSL::SSL::SSLError (Unrecognized SSL message, plaintext connection?) 

Et puis j’ai changé de port à 25 et maintenant je l’obtiens (avec 30 secondes de retard):

 Timeout::Error (execution expired) 

J’ai eu le même problème: les e-mails étaient envoyés depuis le développement, mais pas depuis la production (où j’obtenais Net::SMTPAuthenticationError ). Cela m’a conduit à la conclusion que le problème n’était pas avec la configuration de mon application, mais avec Google.

Raison : Google bloquait l’access depuis un emplacement inconnu (application en production)

Solution : Accédez au site http://www.google.com/accounts/DisplayUnlockCaptcha et cliquez sur continuer (cela vous autorisera à accéder aux nouvelles applications pendant 10 minutes). Après cela, mon application en production a commencé à envoyer des emails;)

Cette solution fonctionne pour moi:

 config.action_mailer.delivery_method = :smtp config.action_mailer.default_url_options = { host:'localhost', port: '3000' } config.action_mailer.perform_deliveries = true config.action_mailer.raise_delivery_errors = true config.action_mailer.default :charset => "utf-8" config.action_mailer.smtp_settings = { :address => "smtp.gmail.com", :port => 587, :domain => 'localhost:3000', :user_name => "xyz@gmail.com", :password => "password", :authentication => :plain, :enable_starttls_auto => true } 

Il est vrai que Google bloque votre tentative de connexion, mais vous pouvez modifier vos parameters à l’ adresse https://www.google.com/settings/security/lesssecureapps afin que votre compte ne soit plus protégé par les normes de sécurité modernes.

Résolu! J’ai simplement changé le mot de passe pour mon compte gmail et certaines erreurs ont disparu.

Après une douzaine de modifications, les parameters finaux avec lesquels je me suis retrouvé sont les suivants:

 config.action_mailer.delivery_method = :smtp config.action_mailer.default_url_options = { :host => "my.ip.addr.here" } config.action_mailer.smtp_settings = { :address => "smtp.gmail.com", :port => 587, :domain => 'my.ip.addr.here:80', :user_name => "my_email_name@gmail.com", :password => "my_email_password", :authentication => :plain, :enable_starttls_auto => true } 

Accédez au lien suivant et activez https://www.google.com/settings/security/lesssecureapps

La solution ci-dessus fournissait les parameters corrects (que j’avais déjà) mais ne résout pas le problème. Après des tentatives continues, j’ai continué à avoir la même erreur. Il s’avère que je devais “effacer le CAPTCHA” du Web. Voir la documentation de gmail pour plus de détails.

Vous pouvez également passer directement à la page “Effacer la CAPTCHA” ici .

Beaucoup plus tard, mais juste au cas où cela aiderait tout le monde. Juste appelé le centre d’aide Google Apps et ils ont demandé de modifier le paramètre lesssecureapps (comme tout le monde), mais aussi de changer le port en 465.

Dans mon cas, ça a fait l’affaire!

J’ai également rencontré le problème, et après quelques recherches dans les parameters Gmail, j’ai trouvé la solution:

  1. Dans gmail, allez dans les parameters.

  2. Sélectionnez l’onglet “Transfert et POP / IMAP”.

  3. Dans la section Accès IMAP, sélectionnez “Activer IMAP”.

Bonjour, cela a aussi fonctionné pour moi et donc si quelqu’un a encore un problème, essayez ceci.

Assurez-vous d’avoir figaro dans votre fichier gemfile. Pour enregistrer des informations sensibles telles que le nom d’utilisateur et le mot de passe en tant que variables d’environnement

 gem 'figaro' 

Et dans votre config / environnements / development.rb, collez les codes ci-dessous en utilisant smtp comme méthode de livraison

  config.action_mailer.delivery_method = :smtp 

Paramètres SMTP pour gmail

  config.action_mailer.smtp_settings = { :address=> "smtp.gmail.com", :port => 587, :user_name => ENV['gmail_username'], :password=> ENV['gmail_password'], :authentication=> "plain", :enable_starttls_auto=>true } config.action_mailer.default_url_options = { host: "locahost:3000" } 

Dans votre répertoire de configuration, créez un fichier appelé application.yml et ajoutez les codes ci-dessous.

 gmail_username: 'example@gmail.com' gmail_password: "your_example_email_password_here" 

Vous devez utiliser votre adresse e-mail et votre mot de passe pour l’authentification dans le fichier.

J’ai eu le même problème.

Vous pouvez activer l’ option des less secure apps ( ici ).
https://myaccount.google.com/lesssecureapps

Et débloquer Captcha ( lien ):
https://accounts.google.com/DisplayUnlockCaptcha

La réponse acceptée semble très ancienne, je ne sais pas si la solution suivante (meilleure) existait à cette époque:

Maintenant, l’envoi d’emails fonctionne parfaitement!

J’ai eu le même problème et après quelques essais et erreurs, sont venus à cette résolution qui est une option à activer dans Google:

Cliquez sur https://www.google.com/settings/u/0/security/lesssecureapps.

Activez «Accès aux applications moins sécurisées» en vous connectant avec l’adresse e-mail fournie dans la configuration SMTP.