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 개의 이메일을 보낼 수는 있지만 곧 같은 오류 메시지가 다시 나타납니다.

답변:


12

문제는 도메인에 SPF 레코드를 설정했지만 도메인과 관련된 DKIM 레코드가 없다는 것입니다. Google Apps에 DKIM 레코드를 추가하려면 다음을 수행해야합니다.

  • 관리 콘솔로 이동
  • "Google Apps"를 클릭하십시오
  • "Gmail"을 클릭하십시오
  • "이메일 인증"이 보일 때까지 아래로 스크롤하여 클릭하십시오.
  • DKIM을 추가 할 도메인을 선택하십시오
  • 사용할 접두사를 물으면 기본값 'google'을 사용하십시오.

그런 다음 TXT 레코드를 두 부분으로 볼 수 있습니다. 한 부분에는 도메인이 있고 다른 부분에는 실제 TXT 레코드가 있습니다. 도메인의 서버에서 DNS 설정으로 이동하여이 레코드를 추가해야합니다. DNS 제어판에서 도메인을 추가 할 수없는 google._domainkey경우 도메인을 정규화 된 도메인으로 만드십시오 google._domainkey.example.com.

이렇게 한 후 DNS 레코드를 전파 할 시간을 조금 준 다음 Google Apps 관리자 패널에서 "인증 시작"을 클릭하십시오. 녹색 확인 표시가 보이면 완료된 것이므로 전자 메일이 SMTP 서버를 통해 다시 시작됩니다.


DNS 서버를 제어하지 않으면 어떻게됩니까?
Ishmael

1
생명의 은인. Gmail은 TXT 레코드에 대한 권한이있는 서버를 확인하는 것으로 보이므로 전체 DNS 전파를 기다릴 필요가 없습니다. 요즘에는 DNS 영역 파일 관리자를 통해 변경 한 내용이 대부분이므로 몇 개 이상 기다릴 필요가 없습니다. 변경 사항이 적용되는 초.
JT Taylor

4

보내야 할 각 이메일에 대해 인증하지 않아야합니다.

프로세스 시작시 :

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

그런 다음 전송 세션을 사용하여 세션을 시작하지 않고 각 메일을 보내십시오.

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

모든 이메일을 보낸 후 연결을 닫아야합니다.

transport.close();

0

@ victorpacheco3107의 솔루션이 나를 위해 일했습니다. 이것은 루비에서 한 것입니다.

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

대량 이메일을 보낼 때 SMTP를 사용하면 모든 단일 메일로 로그인 한 다음 로그 아웃합니다. 그 때문에 Google은 연결을 차단합니다. 나를 위해 일한 것은 SMTPKeepAlive를 true로 설정하는 것입니다.


1
각 메일에 로그인하지 않는 것이 좋습니다.
RalfFriedl
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.