Google SMTP错误:454 4.7.0login尝试过多,请稍后重试

我发现尽pipe可以使用Gmail / Google Apps作为SMTP服务器进行脚本使用,但是如果发送太多的电子邮件,我开始收到错误消息:

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

通常,如果我等了一两个小时,我可以再发送100封电子邮件,但我很快会再次遇到同样的错误消息。

    我发现问题是,尽pipe我们为我们的域名设置了SPFlogging,但是我们没有与我们域名相关的DKIMlogging。 为了在Google Apps中添加DKIMlogging,您需要执行以下操作:

    • 转到pipe理控制台
    • 点击“Google Apps”
    • 点击“Gmail”
    • 向下滚动,直到看到“validation电子邮件”并单击
    • select你想添加DKIM的域名
    • 当它询问你要使用什么前缀时,只需使用默认的'google'

    然后你会看到一个TXTlogging分为两部分,一部分有域名,另一部分有实际的TXTlogging。 您需要进入您的服务器的域名DNS设置并添加此logging。 如果您的DNS控制台不允许您添加google._domainkey的域名,只需将域名完全限定为google._domainkey.example.com

    执行此操作之后,请为DNSlogging传播一段时间,然后在Google Appspipe理控制台中点击“开始authentication”。 如果您看到一个绿色复选标记,则表示已经完成,并且电子邮件应该再次开始stream经SMTP服务器。

    您不能为每个应发送的电子邮件进行身份validation。

    在这个过程的开始:

     Session session = loadSession(); Transport transport = session.getTransport("smtp"); transport.connect("[email protected]", "password"); 

    之后,使用传输对象发送每个没有启动会话的邮件:

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

    在您发送所有电子邮件之后,您应该closures连接:

     transport.close(); 

    从@ victorpacheco3107解决scheme为我工作,这是我在ruby:

     settings = { address: "smtp.gmail.com", port: 587, domain: "mydomain.com", user_name: "[email protected]", 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