7
votes

Obtenir «Doit émettre une commande StartTLS d'abord» lorsque vous essayez d'envoyer un courrier électronique

Je reçois une erreur lors de la tentative d'utilisation du plug-in action_mailer_tls code> pour communiquer avec Gmail dans My Rails App:

Must issue a STARTTLS command first


0 commentaires

4 Réponses :


10
votes

J'ai utilisé la solution d'Alexander Pomozov pour parler à Gmail de My Rails App. Je crois que l'article original est parti mais que quelqu'un a reproduit le cache Google ici .

lib / smtp_tls.rb xxx

config / environnement.rb

(Ajouter après tout sinon) xxx

Utilisez ActionMaililer comme normal.


2 commentaires

Au lieu de lib / smtp_tls.rb, je l'ai mis dans Config / Initializers / ... Les deux devraient fonctionner.


J'essaye cela, mais cela ne reconnaît pas la méthode "getok" - est-ce définie ailleurs? Ce n'est pas dans mes versions de "OpenSSL" ou de "NET / SMTP" ou de tout autre gemme.



5
votes

avec Ruby 1.8.7 et Rails 2.3.4 (bien qu'il y ait été là pour plusieurs sorties), j'ai eu du succès sans avoir besoin de plug-ins d'action spécifique à TLS en utilisant l'option : activation_startls_auto code>. . Un exemple de configuration (à partir de l'environnement de production) ressemble à ceci:

ActionMailer::Base.smtp_settings = {
  :enable_starttls_auto => true,
  :address => "smtp.gmail.com",
  :port => 587,
  :domain => "domain.com",
  :authentication => :plain,
  :user_name => "username@domain",
  :password => "secret"
}


0 commentaires

0
votes

Je cours sur rails 2.3.4 et, bien que je pensais (de googling autour), vous n'avez pas besoin de plug-ins et n'augeant que la ligne

: Activer_starttls_auto => true,

Je ne suis que je ne suis que pour travailler quand j'ai utilisé la solution Alexander Pomozov posté par Ski ci-dessus (grand merci à vous les gars). Des commentaires sur pourquoi? serait génial mais je suis juste heureux ça marche.


1 commentaires

J'ai le même problème, et c'est parce que nous courons toujours au-dessus de Ruby 1.8.6. À partir de la documentation: Lorsqu'il est défini sur true, détecte si StartTLS est activé dans votre serveur SMTP et commence à l'utiliser. Cela ne fonctionne que sur Ruby> = 1.8.7 et Ruby> = 1.9. La valeur par défaut est vraie.



1
votes

J'avais activé StartTls en utilisant : activer_startls_auto => vrai mais a toujours la même erreur. Enfin, j'ai pu le résoudre sans faire un seul changement dans le code. Si vous utilisez smtp.gmail.com pour envoyer du courrier, vous devez d'abord autoriser les applications moins sécurisées d'utiliser votre email pour envoyer des mails. Pour cela, connectez-vous avec votre compte à partir de laquelle vous souhaitez envoyer un courrier et aller à Ce lien et Allumez l'accès à des applications moins sécurisées.
Edit: Si vous n'êtes pas autorisé à modifier les paramètres sur des applications moins sécurisées, vous devez contacter le titulaire du compte administrateur de ce domaine pour modifier les paramètres pour permettre aux utilisateurs d'applications moins sécurisées.
Si vous avez les droits de l'administrateur, vous pouvez autoriser les utilisateurs à modifier leurs paramètres d'application moins sécurisés, vous pouvez le modifier de https://admin.google.com/domainname.com/adminhome#servicesSetting/notab=1&service=securitySetting&subtab=lessSecureAppsAccess
PS: N'oubliez pas de changer le nom de domaine dans le lien ci-dessus.

J'espère que cette Heps !!


1 commentaires

Great @manasvi Cela résolvait le problème dans un coup. Merci!