פורסם 2009 באוקטובר 1216 שנים התחלתי לכתוב קליינט פשוט ל STMP ב python, אבל מהר מאוד נתקלתי בבעיה.from socket import *from string import *import oss = socket(AF_INET, SOCK_STREAM)server = "out.bezeqint.net"port = 25try: s.connect((server, port))except: print "connection failed!" exit(1)data = s.recv(1000)code = split(data, " ", 1)[0]ok = code == "220"if not ok : print "error connecting to server" exit(1)compname = os.environ['COMPUTERNAME']s.sendall("HELO " + compname)data = s.recv(1000)code = split(data, " ", 1)[0]ok = code == "250"if not ok : print "error saying HELO to server" s.close() exit(1)s.close()הבעיה היא שהתוכנית נתקעת ב data = s.recv(1000 השני, שאחרי s.sendall("HELO " + compname.ההשערה שלי היא ש sendall משום מה לא שולח את ההודעה לשרת, והקליינט שלי מחכה לתשובה שהשרת לא שולח בכלל.לפני שהתחלתי לכתוב שלחתי בעזרת telnet אימייל בצורה הזו והצלחתי.מישהו יכול לומר מהי הבעיה?
פורסם 2009 באוקטובר 1216 שנים שרת ה-SMTP מזהה את סוף החבילה לפי ירידת שורה ("\n")לכן, תחליף את:s.sendall("HELO " + compname)ב:s.sendall("HELO " + compname + "\n")
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.