18 votos

Error de Google SMTP: 454 4.7.0 Demasiados intentos de inicio de sesión, inténtelo más tarde

Descubrí que si bien era posible utilizar Gmail/Google Apps como servidor SMTP para el uso de secuencias de comandos, si se enviaban demasiados correos electrónicos empezaba a recibir mensajes de error:

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

Por lo general, si esperaba una o dos horas podía enviar otros 100 correos electrónicos más o menos, pero pronto volvía a encontrarse con el mismo mensaje de error.

12voto

AlexMax Puntos 194

Descubrí que el problema era que, aunque teníamos registros SPF configurados para nuestros dominios, no teníamos un registro DKIM asociado a nuestro dominio. Para añadir un registro DKIM en Google Apps, debes hacer lo siguiente:

  • Ir a la consola de administración
  • Haz clic en "Google Apps"
  • Haga clic en "Gmail".
  • Desplácese hacia abajo hasta que vea "Autenticar correo electrónico" y haga clic en él
  • Seleccione el dominio al que desea añadir DKIM
  • Cuando te pregunte qué prefijo quieres usar, simplemente utiliza el predeterminado de 'google'

Entonces verá un registro TXT en dos partes, una pieza tiene el dominio y la otra tiene el registro TXT real. Tiene que ir a la configuración de DNS en su servidor para su dominio y añadir este registro. Si su panel de control DNS no le permite añadir el dominio de google._domainkey simplemente haz que el dominio sea totalmente cualificado como google._domainkey.example.com .

Una vez hecho esto, dale un poco de tiempo al registro DNS para que se propague y, a continuación, haz clic en "Iniciar autenticación" en el panel de administración de Google Apps. Si ves una marca de verificación verde, lo habrás conseguido y el correo electrónico debería volver a fluir a través del servidor SMTP.

0 votos

¿Y si no tienes el control del servidor DNS?

1 votos

Un salvavidas. Parece que gmail comprobará los servidores autorizados para el registro TXT, por lo que no deberías tener que esperar a la propogación completa del DNS; para la mayoría de los cambios realizados hoy en día a través de un gestor de archivos de zona DNS, no tendrás que esperar más que unos segundos para que el cambio surta efecto.

4voto

No debe autenticarse para cada correo electrónico que deba enviar.

Al principio del proceso:

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

Después, utilice el objeto de transporte para enviar cada correo sin iniciar sesión:

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

Después de enviar todos los correos electrónicos, debe cerrar la conexión:

transport.close();

0voto

tictacbum Puntos 250

la solución de @victorpacheco3107 me funcionó, esto es lo que hice en ruby:

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

0voto

kushal parikh Puntos 101

Usando el SMTP cuando se envía un correo masivo se inicia la sesión con cada uno de los correos y luego se cierra la sesión. Debido a eso googles bloquea tu conexión. Lo que me ha funcionado es poner SMTPKeepAlive en true.

1 votos

Ya se ha sugerido no iniciar sesión para cada correo.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: