Ошибка Google SMTP: 454 4.7.0 Слишком много попыток входа в систему, повторите попытку позже
17
Я обнаружил, что, хотя можно использовать Gmail / Google Apps в качестве SMTP-сервера для использования по сценарию, если отправлено слишком много писем, я начал получать сообщения об ошибках:
SMTP Error: 454 4.7.0 Too many login attempts, please try again later.
Обычно, если бы я подождал час или два, я мог бы отправить еще 100 писем или около того, но вскоре я снова столкнулся бы с тем же сообщением об ошибке.
Я обнаружил, что проблема была в том, что, хотя у нас были настроены записи SPF для наших доменов, у нас не было записи DKIM, связанной с нашим доменом. Чтобы добавить запись DKIM в Google Apps, необходимо сделать следующее:
Перейти к консоли администратора
Нажмите на "Google Apps"
Нажмите на "Gmail"
Прокрутите вниз, пока не увидите «Аутентификация электронной почты» и нажмите
Выберите домен, к которому вы хотите добавить DKIM
Когда он спросит, какой префикс вы хотите использовать, просто используйте по умолчанию "Google"
Затем вы увидите запись TXT из двух частей: одна часть имеет домен, а другая - фактическую запись TXT. Вам нужно зайти в настройки DNS на своем сервере для своего домена и добавить эту запись. Если ваша панель управления DNS не позволяет вам добавить домен google._domainkey, просто сделайте домен полностью квалифицированным, как google._domainkey.example.com.
После этого дайте DNS-записи немного времени для распространения, а затем нажмите «Начать аутентификацию» в панели администратора Служб Google. Если вы видите зеленую галочку, вы сделали это, и электронная почта должна снова начать проходить через SMTP-сервер.
Спасатель. Похоже, что gmail проверит авторитетные серверы на наличие записи TXT, поэтому вам не придется ждать полного распространения DNS - для большинства изменений, внесенных в эти дни с помощью файлового менеджера зоны DNS, вам не придется ждать больше, чем несколько секунд, чтобы изменения вступили в силу.
JT Taylor
4
Вы не должны проходить аутентификацию для каждого письма, которое вы должны отправить.
В начале процесса:
Session session = loadSession();
Transport transport = session.getTransport("smtp");
transport.connect("example@gmail.com", "password");
После этого используйте транспортный объект для отправки каждого письма без запуска сеанса:
Используя SMTP, когда вы отправляете массовую электронную почту, он входит в систему с каждой отдельной почтой, а затем выходит из системы. Из-за этого googles блокирует вашу связь. То, что сработало для меня, это установить SMTPKeepAlive в true.
Вы не должны проходить аутентификацию для каждого письма, которое вы должны отправить.
В начале процесса:
После этого используйте транспортный объект для отправки каждого письма без запуска сеанса:
После того, как вы отправите все электронные письма, вы должны закрыть соединение:
источник
Решение от @ victorpacheco3107 работало для меня, вот что я сделал в ruby:
источник
Используя SMTP, когда вы отправляете массовую электронную почту, он входит в систему с каждой отдельной почтой, а затем выходит из системы. Из-за этого googles блокирует вашу связь. То, что сработало для меня, это установить SMTPKeepAlive в true.
источник