2012-01-31 22 views
10

मैं निदान करने की कोशिश कर रहा हूं कि क्यों अमेज़ॅन एसईएस के माध्यम से ईमेल भेजना पाइथन के माध्यम से काम नहीं कर रहा है।अमेज़ॅन एसईएस एसएमटीपी पायथन उपयोग

निम्नलिखित उदाहरण समस्या का प्रदर्शन करता है, जहां user और pass उपयुक्त प्रमाण-पत्रों पर सेट हैं।

>>> import smtplib 
>>> s = smtplib.SMTP_SSL("email-smtp.us-east-1.amazonaws.com", 465) 
>>> s.login(user, pw) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/lib/python2.6/smtplib.py", line 549, in login 
    self.ehlo_or_helo_if_needed() 
    File "/usr/lib/python2.6/smtplib.py", line 510, in ehlo_or_helo_if_needed 
    (code, resp) = self.helo() 
    File "/usr/lib/python2.6/smtplib.py", line 372, in helo 
    (code,msg)=self.getreply() 
    File "/usr/lib/python2.6/smtplib.py", line 340, in getreply 
    raise SMTPServerDisconnected("Connection unexpectedly closed") 
smtplib.SMTPServerDisconnected: Connection unexpectedly closed 

यह संदेश विशेष रूप से उपयोगी नहीं है, और अन्य उल्लंघनों की कोशिश की है, लेकिन इसे काम पर नहीं लग रहा है।

मैं इन सेटिंग्स के साथ अपने थंडरबर्ड ईमेल क्लाइंट का उपयोग करके ईमेल भेज सकता हूं, इसलिए मेरी धारणा यह है कि मैं कुछ टीएलएस से संबंधित मिशन हूं।

उत्तर

4

मैंने इस समस्या को समय के कारण होने का निर्धारण किया है। क्योंकि मैं कमांड लाइन से उस कोड को निष्पादित कर रहा था, सर्वर टाइमआउट करेगा। अगर मैं इसे एक पायथन फ़ाइल में डालता हूं और इसे चलाता हूं, तो यह संदेश सुनिश्चित करने के लिए पर्याप्त तेज़ निष्पादित करता है।

8

एक पूर्ण उदाहरण:

import smtplib 

user = '' 
pw = '' 
host = 'email-smtp.us-east-1.amazonaws.com' 
port = 465 
me = u'[email protected]' 
you = ('[email protected]',) 
body = 'Test' 
msg = ("From: %s\r\nTo: %s\r\n\r\n" 
     % (me, ", ".join(you))) 

msg = msg + body 

s = smtplib.SMTP_SSL(host, port, 'yourdomain') 
s.set_debuglevel(1) 
s.login(user, pw) 

s.sendmail(me, you, msg) 
11

मुझे नहीं लगता कि SMTP_SSL एसईएस के साथ अब और काम करता है है। किसी को स्टार्टल का उपयोग करना चाहिए()

smtp = smtplib.SMTP("email-smtp.us-east-1.amazonaws.com") 
smtp.starttls() 
smtp.login(SESSMTPUSERNAME, SESSMTPPASSWORD) 
smtp.sendmail(me, you, msg) 
संबंधित मुद्दे

 संबंधित मुद्दे