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封左右的电子邮件,但是很快我会再次遇到相同的错误消息。

Answers:


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 2013年

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的解决方案为我工作,这就是我在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

0

发送批量电子邮件时使用SMTP,它会与每一封邮件一起登录,然后注销。因此,谷歌阻止了您的连接。对我有用的是将SMTPKeepAlive设置为true。


1
已经建议不要为每个邮件登录。
RalfFriedl
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.