[Mailman-Users] Can't send messages to list
Lukasz Szybalski
szybalski at gmail.com
Fri Nov 10 16:30:01 CET 2006
On 11/8/06, Mark Sapiro <msapiro at value.net> wrote:
> Lukasz Szybalski wrote:
> >
> >I put the original smtplib.py file back in /varlib/python.3/smtplib.py
> >and i get the same problem again.
> >
> >Nov 08 16:41:31 2006 (13973) Low level smtp error: [Errno 9] Bad file
> >descriptor, msgid:
> ><804e5c70611081443y26603704gdecfae9847cf64f4 at xxx.xxxx.com>
> >Nov 08 16:46:31 2006 (13973) delivery to xxxxx at xxx.com failed with
> >code -1: [Errno 9] Bad file descriptor
> >Nov 08 16:46:31 2006 (13973) Low level smtp error: [Errno 9] Bad file
> >descriptor, msgid: <455209CD.20560.1BA7A89 at xxxx.xxxx.org>
> >Nov 08 16:46:31 2006 (13973) delivery to xxxx at xxxx.com failed with
> >code -1: [Errno 9] Bad file descriptor
> >
> >So i guess i will stick with the file i got from debian bug
>
>
> Please post a 'diff -u' between the smtplib.py that works and the one
> that doesn't work.
>
> Lionel says that effectively all he changed in your working version was
> writing debug output to sys.stderr instead of stdout, and when I
> diffed Lionel's version with the Python 2.3.4 base, that's the only
> change I saw, but there must be something else in your case or else
> simply enabling the debug prints causes the problem because of the
> writes to stdout, but then what caused the original problem.
>
> In any case, I am very interested to see if there is some other change
> in your original smtplib.py that is causing it to fail.
>
Please not the smtlib.py is the one given to me and smtlib.py.1 is the
original one causing the problem.
I posted the whole file to debian bug report also.
xxx at xxx:/usr/lib/python2.3$ diff -u smtplib.py smtplib.py.1
--- smtplib.py 2006-11-03 11:35:49.000000000 -0600
+++ smtplib.py.1 2006-11-03 12:41:55.000000000 -0600
@@ -41,7 +41,6 @@
#
# This was modified from the Python 1.5 library HTTP lib.
-import sys
import socket
import re
import rfc822
@@ -283,17 +282,17 @@
except ValueError:
raise socket.error, "nonnumeric port"
if not port: port = SMTP_PORT
- if self.debuglevel > 0: print >> sys.stderr, 'connect:', (host, port)
+ if self.debuglevel > 0: print 'connect:', (host, port)
msg = "getaddrinfo returns an empty list"
self.sock = None
for res in socket.getaddrinfo(host, port, 0, socket.SOCK_STREAM):
af, socktype, proto, canonname, sa = res
try:
self.sock = socket.socket(af, socktype, proto)
- if self.debuglevel > 0: print >> sys.stderr,
'connect:', (host, port)
+ if self.debuglevel > 0: print 'connect:', (host, port)
self.sock.connect(sa)
except socket.error, msg:
- if self.debuglevel > 0: print >> sys.stderr, 'connect
fail:', (host, port)
+ if self.debuglevel > 0: print 'connect fail:', (host, port)
if self.sock:
self.sock.close()
self.sock = None
@@ -302,12 +301,12 @@
if not self.sock:
raise socket.error, msg
(code, msg) = self.getreply()
- if self.debuglevel > 0: print >> sys.stderr, "connect:", msg
+ if self.debuglevel > 0: print "connect:", msg
return (code, msg)
def send(self, str):
"""Send `str' to the server."""
- if self.debuglevel > 0: print >> sys.stderr, 'send:', `str`
+ if self.debuglevel > 0: print 'send:', `str`
if self.sock:
try:
self.sock.sendall(str)
@@ -346,7 +345,7 @@
if line == '':
self.close()
raise SMTPServerDisconnected("Connection unexpectedly closed")
- if self.debuglevel > 0: print >> sys.stderr, 'reply:', `line`
+ if self.debuglevel > 0: print 'reply:', `line`
resp.append(line[4:].strip())
code=line[:3]
# Check that the error code is syntactically correct.
@@ -362,7 +361,7 @@
errmsg = "\n".join(resp)
if self.debuglevel > 0:
- print >> sys.stderr, 'reply: retcode (%s); Msg: %s' %
(errcode,errmsg)
+ print 'reply: retcode (%s); Msg: %s' % (errcode,errmsg)
return errcode, errmsg
def docmd(self, cmd, args=""):
@@ -475,7 +474,7 @@
"""
self.putcmd("data")
(code,repl)=self.getreply()
- if self.debuglevel >0 : print >> sys.stderr, "data:", (code,repl)
+ if self.debuglevel >0 : print "data:", (code,repl)
if code != 354:
raise SMTPDataError(code,repl)
else:
@@ -485,7 +484,7 @@
q = q + "." + CRLF
self.send(q)
(code,msg)=self.getreply()
- if self.debuglevel >0 : print >> sys.stderr, "data:", (code,msg)
+ if self.debuglevel >0 : print "data:", (code,msg)
return (code,msg)
def verify(self, address):
xxx at xxx:/usr/lib/python2.3$
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=395493
--
Universal Information Crawler
http://uicrawler.sourceforge.net/
More information about the Mailman-Users
mailing list