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.

通常、1〜2時間待った場合、さらに100通程度メールを送信できますが、すぐに同じエラーメッセージが表示されます。

回答:


12

ドメインにSPFレコードが設定されていても、ドメインに関連付けられたDKIMレコードがないという問題があることを発見しました。Google AppsでDKIMレコードを追加するには、次を実行する必要があります。

  • 管理コンソールに移動します
  • [Google Apps]をクリックします
  • [Gmail]をクリックします
  • 「メールの認証」が表示されるまで下にスクロールして、それをクリックします
  • DKIMを追加するドメインを選択します
  • 使用するプレフィックスを尋ねられたら、単にデフォルトの「google」を使用します

TXTレコードは2つの部分に分かれています。1つにはドメインがあり、もう1つには実際のTXTレコードがあります。ドメインのサーバーのDNS設定に移動して、このレコードを追加する必要があります。DNSコントロールパネルでのドメインを追加できない場合は、ドメインをのgoogle._domainkeyように完全修飾するだけgoogle._domainkey.example.comです。

これを行った後、DNSレコードに伝搬する時間を少し与えてから、Google Apps管理パネルで[認証を開始]をクリックします。緑色のチェックマークが表示されている場合は完了です。SMTPサーバーを介して電子メールが再び流れ始めるはずです。


DNSサーバーを制御していない場合はどうなりますか?
イシュマエル

1
命の恩人。gmailはTXTレコードの権限のあるサーバーをチェックするようですので、完全なDNSの伝播を待つ必要はありません。最近ではDNSゾーンファイルマネージャーを介して行われたほとんどの変更について、数回以上待つ必要はありません。変更が有効になるまでの秒数。
JTテイラー

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.