दिलचस्प पोस्ट
आईओएस-चार्ट में एक्स एक्सस पर स्ट्रिंग्स को कैसे जोड़ें? JSF बीन के रूप में JPA इकाई? जावास्क्रिप्ट फ़ंक्शंस के लिए ऑब्जेक्ट पैरामीटर सिंटैक्स पर जानकारी कहां मिल सकती है? माइक्रोसॉफ्ट का उपयोग कर मानव पठनीय तारीख में यूनिक्स टाइमस्टैम्प को कनवर्ट करें I आप AJAX पृष्ठों को कैसे स्क्रैप करते हैं? सी # कक्षाओं के लिए JSON को डीसरियल बनाना विभिन्न प्रकार के सड़कों की मुद्रास्फीति को पुन: संग्रह और संभालना मुझे Java.lang.IllegalStateException "FX अनुप्रयोग धागा पर नहीं" JavaFX पर क्यों मिल रहा है? वास्तव में माइक्रोसॉफ्ट विज़ुअल सी ++ के दो-चरण टेम्पलेट इंस्टाशन के साथ "टूटी हुई" क्या है? एकल पंक्ति के लिए edittext प्रतिबंधित करें AABB आयत के साथ लाइन चौराहा? मैं संपर्क फोटो कैसे लोड करूँ? दृश्यता में क्या अंतर है: छिपा हुआ और प्रदर्शन: कोई नहीं? स्ट्रिंग विभाजन खाली परिणाम नहीं लौट रहा है शब्दों को किसी संख्या में कैसे परिवर्तित करें?

प्रदाता का इस्तेमाल करते हुए पीठ के रूप में जीमेल के साथ एक ईमेल कैसे भेजें?

मैं अजगर का उपयोग करके ईमेल (जीमेल) भेजने की कोशिश कर रहा हूं, लेकिन मुझे निम्नलिखित त्रुटि मिल रही है

Traceback (most recent call last): File "emailSend.py", line 14, in <module> server.login(username,password) File "/usr/lib/python2.5/smtplib.py", line 554, in login raise SMTPException("SMTP AUTH extension not supported by server.") smtplib.SMTPException: SMTP AUTH extension not supported by server. 

पायथन स्क्रिप्ट निम्नलिखित है

 import smtplib fromaddr = 'user_me@gmail.com' toaddrs = 'user_you@gmail.com' msg = 'Why,Oh why!' username = 'user_me@gmail.com' password = 'pwd' server = smtplib.SMTP('smtp.gmail.com:587') server.starttls() server.login(username,password) server.sendmail(fromaddr, toaddrs, msg) server.quit() 

Solutions Collecting From Web of "प्रदाता का इस्तेमाल करते हुए पीठ के रूप में जीमेल के साथ एक ईमेल कैसे भेजें?"

आपको सीधे STARTTLS में चलने से पहले EHLO कहने की जरूरत है:

 server = smtplib.SMTP('smtp.gmail.com:587') server.ehlo() server.starttls() 

इसके अलावा आपको वास्तव में From: और Subject: संदेश हेडर, संदेश निकाय से एक रिक्त पंक्ति से अलग और ईओएल मार्कर के रूप में CRLF उपयोग करना चाहिए।

उदाहरण के लिए

 msg = "\r\n".join([ "From: user_me@gmail.com", "To: user_you@gmail.com", "Subject: Just a message", "", "Why, oh why" ]) 
 def send_email(user, pwd, recipient, subject, body): import smtplib gmail_user = user gmail_pwd = pwd FROM = user TO = recipient if type(recipient) is list else [recipient] SUBJECT = subject TEXT = body # Prepare actual message message = """From: %s\nTo: %s\nSubject: %s\n\n%s """ % (FROM, ", ".join(TO), SUBJECT, TEXT) try: server = smtplib.SMTP("smtp.gmail.com", 587) server.ehlo() server.starttls() server.login(gmail_user, gmail_pwd) server.sendmail(FROM, TO, message) server.close() print 'successfully sent the mail' except: print "failed to send mail" 

यदि आप पोर्ट 465 का उपयोग करना चाहते हैं तो आपको एक SMTP_SSL ऑब्जेक्ट बनाना होगा:

 # SMTP_SSL Example server_ssl = smtplib.SMTP_SSL("smtp.gmail.com", 465) server_ssl.ehlo() # optional, called by login() server_ssl.login(gmail_user, gmail_pwd) # ssl server doesn't support or need tls, so don't call server_ssl.starttls() server_ssl.sendmail(FROM, TO, message) #server_ssl.quit() server_ssl.close() print 'successfully sent the mail' 

मैं एक ऐसी ही समस्या में गया और इस प्रश्न पर ठोकर खाई। मुझे एक एसएमटीपी प्रमाणीकरण त्रुटि मिली लेकिन मेरा उपयोगकर्ता नाम / पास सही था। यहाँ यह तय किया गया है मैं इसे पढ़ता हूं:

https://support.google.com/accounts/answer/6010255

संक्षेप में, Google आपको smtplib के माध्यम से लॉग इन करने की इजाजत नहीं दे रहा है क्योंकि उसने इस तरह के लॉगिन को "कम सुरक्षित" के रूप में चिह्नित किया है, इसलिए आपको अपने Google खाते में लॉग इन करते समय इस लिंक पर जाना होगा, और पहुंच की अनुमति दें:

https://www.google.com/settings/security/lesssecureapps

सेट हो जाने के बाद (नीचे मेरा स्क्रीनशॉट देखें), यह काम करना चाहिए

यहां छवि विवरण दर्ज करें

लॉगिन अब काम करता है:

 smtpserver = smtplib.SMTP("smtp.gmail.com", 587) smtpserver.ehlo() smtpserver.starttls() smtpserver.ehlo() smtpserver.login('me@gmail.com', 'me_pass') 

परिवर्तन के बाद प्रतिक्रिया:

 (235, '2.7.0 Accepted') 

उत्तर पूर्व:

 smtplib.SMTPAuthenticationError: (535, '5.7.8 Username and Password not accepted. Learn more at\n5.7.8 http://support.google.com/mail/bin/answer.py?answer=14257 g66sm2224117qgf.37 - gsmtp') 

अभी भी काम नहीं कर रहा है? यदि आप अभी भी SMTPAuthenticationError प्राप्त करते हैं लेकिन अब कोड 534 है, इसका कारण यह है कि स्थान अज्ञात है। इस लिंक पर जाओ:

https://accounts.google.com/DisplayUnlockCaptcha

जारी रखें पर क्लिक करें और आपको अपना नया ऐप दर्ज करने के लिए 10 मिनट देना चाहिए। इसलिए अब एक और लॉगिन प्रयास करना जारी रखें और यह काम करना चाहिए।

अद्यतनः यह तुरंत काम करने में प्रतीत नहीं होता है, आप smptlib में इस त्रुटि को थोड़ी देर के लिए फंस सकते हैं:

 235 == 'Authentication successful' 503 == 'Error: already authenticated' 

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

 SMTPAuthenticationError: (534, '5.7.9 Please log in with your web browser and then try again. Learn more at\n5.7.9 https://support.google.com/mail/bin/answer.py?answer=78754 qo11sm4014232igb.17 - gsmtp') 

'कमसेक्यूअरएप' को सक्षम करने के बाद, एक कॉफी के लिए आओ, वापस आओ, और फिर 'DisplayUnlockCaptcha' लिंक को आज़माएं उपयोगकर्ता के अनुभव से, इसमें बदलाव के लिए एक घंटे तक लग सकता है। फिर साइन-इन प्रक्रिया को फिर से प्रयास करें

आप इसे यहां पा सकते हैं: http://jayrambhia.com/blog/send-emails-using-python

  smtp_host = 'smtp.gmail.com' smtp_port = 587 server = smtplib.SMTP() server.connect(smtp_host,smtp_port) server.ehlo() server.starttls() server.login(user,passw) fromaddr = raw_input('Send mail by the name of: ') tolist = raw_input('To: ').split() sub = raw_input('Subject: ') msg = email.MIMEMultipart.MIMEMultipart() msg['From'] = fromaddr msg['To'] = email.Utils.COMMASPACE.join(tolist) msg['Subject'] = sub msg.attach(MIMEText(raw_input('Body: '))) msg.attach(MIMEText('\nsent via python', 'plain')) server.sendmail(user,tolist,msg.as_string()) 

प्रत्यक्ष रूप से संबंधित नहीं है लेकिन अभी भी बताए जाने योग्य है कि मेरा पैकेज जीमेल संदेशों को वास्तव में त्वरित और दर्द रहित भेजने की कोशिश करता है यह त्रुटियों की एक सूची बनाए रखने का भी प्रयास करता है और तुरंत समाधान के बारे में इंगित करने का प्रयास करता है

यह वास्तव में आपके द्वारा लिखित रूप में ठीक करने के लिए केवल इस कोड की आवश्यकता होगी:

 import yagmail yag = yagmail.SMTP('user_me@gmail.com') yag.send('user_you@gmail.com', 'Why,Oh why!') 

या एक एक लाइनर:

 yagmail.SMTP('user_me@gmail.com').send('user_you@gmail.com', 'Why,Oh why!') 

पैकेज / स्थापना के लिए कृपया git या pip पर देखें , दोनों पायथन 2 और 3 के लिए उपलब्ध है।

आप ओओपी से नीचे हैं?

 #!/usr/bin/env python import smtplib class Gmail(object): def __init__(self, email, password): self.email = email self.password = password self.server = 'smtp.gmail.com' self.port = 587 session = smtplib.SMTP(self.server, self.port) session.ehlo() session.starttls() session.ehlo session.login(self.email, self.password) self.session = session def send_message(self, subject, body): ''' This must be removed ''' headers = [ "From: " + self.email, "Subject: " + subject, "To: " + self.email, "MIME-Version: 1.0", "Content-Type: text/html"] headers = "\r\n".join(headers) self.session.sendmail( self.email, self.email, headers + "\r\n\r\n" + body) gm = Gmail('Your Email', 'Password') gm.send_message('Subject', 'Message') 

पुराने smtplib की समस्या की तरह लगता है python2.7 सब कुछ ठीक काम करता है

अद्यतन : हां, server.ehlo() भी मदद कर सकता है

अब एक जीमेल एपीआई है, जो आपको ई-मेल भेजने, ई-मेल पढ़ने और रेस्ट के माध्यम से ड्राफ्ट बनाने की सुविधा देता है। एसएमटीपी कॉल के विपरीत, यह गैर-अवरुद्ध है जो थ्रेड-आधारित वेबसर्वर के अनुरोध धागे में ईमेल भेजना (जैसे अजगर वेबसर्वर) के लिए एक अच्छी बात हो सकती है। एपीआई भी काफी शक्तिशाली है।

  • बेशक, ई-मेल को गैर-वेबसर्वर कतार में सौंप दिया जाना चाहिए, लेकिन विकल्पों के लिए अच्छा होना चाहिए।

यदि आपके पास डोमेन पर Google Apps व्यवस्थापक अधिकार हैं, तो यह सबसे आसान सेटअप है, क्योंकि तब आप अपने ग्राहक को कंबल अनुमति दे सकते हैं। अन्यथा आपको ओअथ प्रमाणीकरण और अनुमति के साथ बेला होना है।

यहां यह दर्शाते हुए एक सार है:

https://gist.github.com/timrichardson/1154e29174926e462b7a

@ डेविड से बहुत अच्छा जवाब, यहां सामान्य प्रयास के बिना अजगर 3 के लिए है – इसके अलावा:

 def send_email(user, password, recipient, subject, body): gmail_user = user gmail_pwd = password FROM = user TO = recipient if type(recipient) is list else [recipient] SUBJECT = subject TEXT = body # Prepare actual message message = """From: %s\nTo: %s\nSubject: %s\n\n%s """ % (FROM, ", ".join(TO), SUBJECT, TEXT) server = smtplib.SMTP("smtp.gmail.com", 587) server.ehlo() server.starttls() server.login(gmail_user, gmail_pwd) server.sendmail(FROM, TO, message) server.close() 
  import smtplib fromadd='from@gmail.com' toadd='send@gmail.com' msg='''hi,how r u''' username='abc@gmail.com' passwd='password' try: server = smtplib.SMTP('smtp.gmail.com:587') server.ehlo() server.starttls() server.login(username,passwd) server.sendmail(fromadd,toadd,msg) print("Mail Send Successfully") server.quit() except: print("Error:unable to send mail") NOTE:https://www.google.com/settings/security/lesssecureapps that should be enabled 
 import smtplib server = smtplib.SMTP('smtp.gmail.com', 587) server.ehlo() server.starttls() server.login("fromaddress", "password") msg = "HI!" server.sendmail("fromaddress", "receiveraddress", msg) server.quit()