Question Erreur Google SMTP: 454 4.7.0 Trop de tentatives de connexion. Veuillez réessayer ultérieurement.


J'ai découvert que s'il était possible d'utiliser Gmail / Google Apps en tant que serveur SMTP pour une utilisation scriptée, si trop d'e-mails étaient envoyés, je commençais à recevoir des messages d'erreur:

SMTP Error: 454 4.7.0 Too many login attempts, please try again later.

Habituellement, si j’attendais une heure ou deux, je pouvais envoyer une centaine de courriels supplémentaires, mais j’allais bientôt rencontrer le même message d’erreur.


16
2017-10-01 15:44


origine




Réponses:


J'ai découvert que le problème était que, même si des enregistrements SPF avaient été configurés pour nos domaines, aucun enregistrement DKIM n'était associé à notre domaine. Pour ajouter un enregistrement DKIM dans Google Apps, vous devez procéder comme suit:

  • Aller à la console d'administration
  • Cliquez sur "Google Apps"
  • Cliquez sur "Gmail"
  • Faites défiler la liste jusqu'à ce que vous voyez "Authenticate Email" et cliquez dessus.
  • Sélectionnez le domaine auquel vous souhaitez ajouter DKIM
  • Quand il vous demande quel préfixe vous voulez utiliser, utilisez simplement la valeur par défaut de "google"

Vous verrez alors un enregistrement TXT en deux parties, l’une contenant le domaine et l’autre l’enregistrement TXT réel. Vous devez accéder à vos paramètres DNS sur votre serveur pour votre domaine et ajouter cet enregistrement. Si votre panneau de configuration DNS ne vous autorise pas à ajouter le domaine de google._domainkey, il suffit simplement de rendre le domaine pleinement qualifié comme google._domainkey.example.com.

Cela fait, laissez à l'enregistrement DNS un peu de temps pour se propager, puis cliquez sur "Démarrer l'authentification" dans le panneau d'administration de Google Apps. Si vous voyez une coche verte, vous l'avez déjà fait et le courrier électronique devrait recommencer à circuler via le serveur SMTP.


10
2017-10-01 15:44



Que faire si vous n'êtes pas en contrôle du serveur DNS? - Ishmael
Une bouée de sauvetage. Il semble que gmail vérifie l'enregistrement TXT sur les serveurs faisant autorité, de sorte que vous ne devriez pas attendre la propagation complète du serveur DNS. Pour la plupart des modifications apportées ces jours-ci via un gestionnaire de fichiers de zone DNS, vous ne devrez pas attendre plus de quelques jours. secondes pour que le changement prenne effet. - J.T. Taylor


Vous ne devez pas vous authentifier pour chaque email que vous devez envoyer.

Au début du processus:

Session session = loadSession();
Transport transport = session.getTransport("smtp");
transport.connect("example@gmail.com", "password");

Ensuite, utilisez l'objet de transport pour envoyer chaque courrier sans session de démarrage:

transport.sendMessage(message, message.getAllRecipients());

Après avoir envoyé tous les emails, vous devez fermer la connexion:

transport.close();

4
2018-02-25 22:13





La solution de @ victorpacheco3107 a fonctionné pour moi, c’est ce que j’ai fait en rubis:

settings = {
  address:        "smtp.gmail.com",
  port:           587,
  domain:         "mydomain.com",
  user_name:      "user@mydomain.com",
  password:       "password",
  authentication: "plain"
}

smtp_conn = Net::SMTP.new(settings[:address], settings[:port])
smtp_conn.enable_starttls_auto
smtp_conn = smtp_conn.start(settings[:domain],
                            settings[:user_name],
                            settings[:password],
                            settings[:authentication])
Mail.defaults do
  delivery_method :smtp_connection, { :connection => smtp_conn }
end

# send mails..
mail = Mail.new
mail.to('...')
# more mail stuff..
mail.deliver!

# after all mails are sent, end session
smtp_conn.finish

0
2018-04-22 15:40