J'envoie un courrier électronique à partir de mon Rails). Il fonctionne bien dans un environnement de développement, mais échoue lors de la copie intermédiaire. Le message d'erreur suivant s'affiche:
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 paramètres 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 => "[email protected]",
:password => "my_email_password",
:authentication => 'login'
}
S'il vous plaît, aidez.
Edit.
Après avoir ajouté :tls => true
option je reçois
OpenSSL::SSL::SSLError (Unrecognized SSL message, plaintext connection?)
Et puis j'ai changé le port à 25 et maintenant je reçois ceci (avec un délai de 30 secondes):
Timeout::Error (execution expired)
J'ai eu le même problème: les courriels étaient envoyés par le développement, mais pas par la production (où j'obtenais Net::SMTPAuthenticationError
). Cela m'a amené à conclure que le problème n'était pas lié à la configuration de mon application, mais à Google.
Raison : Google bloquait l'accès depuis un emplacement inconnu (application en production).
Solution : accédez à http://www.google.com/accounts/DisplayUnlockCaptcha et cliquez sur Continuer (cela accordera l'accès pendant 10 minutes pour enregistrer de nouvelles applications). 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 => "[email protected]",
:password => "password",
:authentication => :plain,
:enable_starttls_auto => true
}
Il est vrai que Google bloquera votre tentative de connexion mais vous pouvez modifier vos paramètres à partir de https://www.google.com/settings/security/lesssecureapps afin que votre compte ne soit plus protégé par normes de sécurité.
Résolu! Je simplement mot de passe changé pour mon compte Gmail et en quelque sorte les erreurs ont disparu.
Après une douzaine de modifications, les derniers paramètres que j'ai obtenus 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 => "[email protected]",
: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 paramètres corrects (que j'avais déjà) mais ne résolvait pas le problème. Après des tentatives répétées, j'ai continué à avoir la même erreur. Il s'est avéré que je devais "nettoyer le CAPTCHA" du Web. Voir le documentation gmail pour plus de détails.
Vous pouvez aussi aller directement à la page "vider le CAPTCHA" ici .
Beaucoup plus tard, mais au cas où cela pourrait aider quelqu'un .. Appelez simplement le centre d’aide Google Apps et ils vous ont demandé de modifier le paramètre lesssecureapps (comme tout le monde), mais également de modifier le port en 465.
Dans mon cas, ça a fait l'affaire!
La réponse acceptée semble très ancienne, je ne sais pas si à cette époque existait la solution suivante (meilleure):
config.action_mailer.smtp_settings
Maintenant, envoyer des emails fonctionne parfaitement!
Vous pouvez activer less secure apps
_ option ( ( à ici ).
https://myaccount.google.com/lesssecureapps
Et déverrouillez Captcha ( ( link ):
https://accounts.google.com/DisplayUnlockCaptcha
J'ai également rencontré le problème et, après quelques recherches sur Gmail, j'ai trouvé la solution:
Dans Gmail, accédez aux paramètres.
Sélectionnez l'onglet "Transfert et POP/IMAP".
Dans la section Accès IMAP, sélectionnez "Activer IMAP".
Bonjour, cela a également fonctionné pour moi. Si quelqu'un a toujours un problème, essayez-le.
Assurez-vous que vous avez figaro dans votre 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 nommé application.yml et ajoutez les codes ci-dessous.
gmail_username: '[email protected]'
gmail_password: "your_example_email_password_here"
Vous devez utiliser votre email et votre mot de passe pour vous authentifier dans le fichier.