Google SMTP त्रुटि: 454 4.7.0 बहुत से लॉगिन प्रयास, कृपया बाद में पुनः प्रयास करें


17

मुझे पता चला कि जब स्क्रिप्ट के उपयोग के लिए एक SMTP सर्वर के रूप में Gmail / Google Apps का उपयोग करना संभव था, अगर बहुत सारे ईमेल भेजे गए तो मुझे त्रुटि संदेश मिलना शुरू हो गया:

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

आमतौर पर अगर मैं एक या दो घंटे इंतजार करता हूं तो मैं एक और 100 ईमेल भेज सकता हूं, लेकिन मैं जल्द ही फिर से उसी त्रुटि संदेश में चला जाऊंगा।

जवाबों:


12

मुझे पता चला कि समस्या यह थी कि हालांकि हमारे डोमेन के लिए हमारे पास SPF रिकॉर्ड स्थापित थे, लेकिन हमारे पास हमारे डोमेन से संबंधित DKIM रिकॉर्ड नहीं था। Google Apps में DKIM रिकॉर्ड जोड़ने के लिए, आपको निम्नलिखित कार्य करने होंगे:

  • एडमिन कंसोल पर जाएं
  • "Google Apps" पर क्लिक करें
  • "जीमेल" पर क्लिक करें
  • नीचे स्क्रॉल करें जब तक कि आप "ईमेल प्रमाणित करें" और उस पर क्लिक न करें
  • उस डोमेन का चयन करें जिसे आप DKIM जोड़ना चाहते हैं
  • जब यह पूछता है कि आप किस उपसर्ग का उपयोग करना चाहते हैं, तो बस 'google' के डिफ़ॉल्ट का उपयोग करें

फिर आपको दो भागों में एक TXT रिकॉर्ड दिखाई देगा, एक टुकड़े में डोमेन है और दूसरे में वास्तविक TXT रिकॉर्ड है। आपको अपने डोमेन के लिए अपने DNS सेटिंग्स में अपने डोमेन में जाने और इस रिकॉर्ड को जोड़ने की आवश्यकता है। यदि आपका DNS कंट्रोल पैनल आपको डोमेन जोड़ने की अनुमति नहीं देता है google._domainkey, तो बस डोमेन को पूरी तरह से योग्य बनाएं google._domainkey.example.com

ऐसा करने के बाद, DNS रिकॉर्ड को प्रचारित करने के लिए थोड़ा समय दें और फिर Google खाता व्यवस्थापक पैनल में "प्रारंभ प्रमाणीकरण" पर क्लिक करें। यदि आपको एक हरे रंग का चेकमार्क दिखाई देता है, तो आप इसे कर चुके हैं, और ईमेल को एसएमटीपी सर्वर के माध्यम से एक बार फिर से शुरू करना चाहिए।


यदि आप DNS सर्वर के नियंत्रण में नहीं हैं तो क्या होगा?
इस्माइल

1
एक जीवनरक्षक। ऐसा प्रतीत होता है कि जीमेल TXT रिकॉर्ड के लिए आधिकारिक सर्वर की जांच करेगा, इसलिए आपको पूर्ण DNS प्रचार के लिए इंतजार नहीं करना चाहिए - DNS ज़ोन फ़ाइल प्रबंधक के माध्यम से इन दिनों किए गए अधिकांश परिवर्तनों के लिए, आपको कुछ से अधिक इंतजार नहीं करना पड़ेगा परिवर्तन प्रभावी होने के लिए सेकंड।
जेटी टेलर

4

आपके द्वारा भेजे जाने वाले प्रत्येक ईमेल के लिए आपको प्रमाणित नहीं करना चाहिए।

प्रक्रिया की शुरुआत में:

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

प्रारंभ सत्र के बिना प्रत्येक मेल भेजने के लिए परिवहन वस्तु का उपयोग करने के बाद:

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

सभी ईमेल भेजने के बाद, आपको कनेक्शन बंद करना चाहिए:

transport.close();

0

समाधान से @ winorpacheco3107 ने मेरे लिए काम किया, यह मैंने रूबी में क्या किया:

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

जब आप बल्क ईमेल भेजते हैं तो एसएमटीपी का उपयोग करते हुए इसे हर एक मेल के साथ लॉगिन करते हैं और फिर लॉगआउट करते हैं। उस वजह से googles आपके कनेक्शन को ब्लॉक कर देता है। मेरे लिए जो काम किया है वह SMTPKeepAlive को सही पर सेट करना है।


1
यह पहले से ही प्रत्येक मेल के लिए लॉगिन नहीं करने का सुझाव दिया गया है।
राल्फफ्राइडल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.