473,236 Members | 1,751 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,236 software developers and data experts.

Roundup, smtplib, TLS and MS Exchange

Hi,

I'm using the roundup issue tracker (http://roundup.sourceforge.net)
which uses smtplib to send mail. It all worked until we moved to a
hosted Exchange MTA. The hosting provider requires the use of TLS. Now
roundup can't send mail.

My version of python is:
Python 2.3.4 (#1, Feb 6 2006, 10:38:46)
[GCC 3.4.5 20051201 (Red Hat 3.4.5-2)] on linux2

Roundup version:
$ roundup-server --version
1.1.2 (python 2.3.4)

I've reproduced the SMTP conversation below. I'm not sure if it's a
problem with Roundup, smtplib, or Exchange.

Any assistance appreciated.

[foobar@moe tracker]$ roundup-server -p 8081
roundup=/home/foobar/roundup/tracker
Roundup server started on :8081
send: 'STARTTLS\r\n'
reply: '503 5.5.2 Send hello first\r\n'
reply: retcode (503); Msg: 5.5.2 Send hello first
send: 'ehlo moe.foobar.local\r\n'
reply: '250-smtpx15.msoutlookonline.net Hello [202.173.131.223]\r\n'
reply: '250-SIZE 31457280\r\n'
reply: '250-PIPELINING\r\n'
reply: '250-ENHANCEDSTATUSCODES\r\n'
reply: '250-STARTTLS\r\n'
reply: '250-AUTH LOGIN\r\n'
reply: '250-8BITMIME\r\n'
reply: '250-BINARYMIME\r\n'
reply: '250 CHUNKING\r\n'
reply: retcode (250); Msg: smtpx15.msoutlookonline.net Hello [202.173.131.223]
SIZE 31457280
PIPELINING
ENHANCEDSTATUSCODES
STARTTLS
AUTH LOGIN
8BITMIME
BINARYMIME
CHUNKING
send: 'AUTH LOGIN ************==\r\n'
reply: '334 ************\r\n'
reply: retcode (334); Msg: ************
send: '************\r\n'
reply: '235 2.7.0 Authentication successful\r\n'
reply: retcode (235); Msg: 2.7.0 Authentication successful
send: 'mail FROM:<us**@domain.comsize=1090\r\n'
reply: '451 5.7.3 Must issue a STARTTLS command first\r\n'
reply: retcode (451); Msg: 5.7.3 Must issue a STARTTLS command first
send: 'rset\r\n'
send: 'STARTTLS\r\n'
reply: '503 5.5.2 Send hello first\r\n'
reply: retcode (503); Msg: 5.5.2 Send hello first
send: 'ehlo moe.foobar.local\r\n'
reply: '250-smtpx15.msoutlookonline.net Hello [202.173.131.223]\r\n'
reply: '250-SIZE 31457280\r\n'
reply: '250-PIPELINING\r\n'
reply: '250-ENHANCEDSTATUSCODES\r\n'
reply: '250-STARTTLS\r\n'
reply: '250-AUTH LOGIN\r\n'
reply: '250-8BITMIME\r\n'
reply: '250-BINARYMIME\r\n'
reply: '250 CHUNKING\r\n'
reply: retcode (250); Msg: smtpx15.msoutlookonline.net Hello [202.173.131.223]
SIZE 31457280
PIPELINING
ENHANCEDSTATUSCODES
STARTTLS
AUTH LOGIN
8BITMIME
BINARYMIME
CHUNKING
send: 'AUTH LOGIN ******************************==\r\n'
reply: '334 ************\r\n'
reply: retcode (334); Msg: ************
send: '************\r\n'
reply: '235 2.7.0 Authentication successful\r\n'
reply: retcode (235); Msg: 2.7.0 Authentication successful
send: 'mail FROM:<us**@domain.comsize=1711\r\n'
reply: '451 5.7.3 Must issue a STARTTLS command first\r\n'
reply: retcode (451); Msg: 5.7.3 Must issue a STARTTLS command first
send: 'rset\r\n'
192.168.100.68 - - [31/May/2007 16:14:01] "POST /roundup/issue1638
HTTP/1.1" 400 -
EXCEPTION AT Thu May 31 16:14:01 2007
Traceback (most recent call last):
File "/usr/lib/python2.3/site-packages/roundup/scripts/roundup_server.py",
line 106, in run_cgi
self.inner_run_cgi()
File "/usr/lib/python2.3/site-packages/roundup/scripts/roundup_server.py",
line 266, in inner_run_cgi
tracker.Client(tracker, self, env).main()
File "/usr/lib/python2.3/site-packages/roundup/cgi/client.py", line
196, in main
self.inner_main()
File "/usr/lib/python2.3/site-packages/roundup/cgi/client.py", line
314, in inner_main
self.mailer.exception_message()
File "/usr/lib/python2.3/site-packages/roundup/mailer.py", line 153,
in exception_message
self.standard_message(to, subject, content)
File "/usr/lib/python2.3/site-packages/roundup/mailer.py", line 93,
in standard_message
self.smtp_send(to, message)
File "/usr/lib/python2.3/site-packages/roundup/mailer.py", line 180,
in smtp_send
raise MessageSendError("Error: couldn't send email: %s"%msg)
MessageSendError: Error: couldn't send email: Connection unexpectedly closed
Jun 1 '07 #1
2 6098
carlistixx wrote:
[foobar@moe tracker]$ roundup-server -p 8081
roundup=/home/foobar/roundup/tracker
Roundup server started on :8081
send: 'STARTTLS\r\n'
reply: '503 5.5.2 Send hello first\r\n'
reply: retcode (503); Msg: 5.5.2 Send hello first
I think this must be an issue with roundup, issuing commands in the wrong
order. The correct order should (according to the rfc and the python docs)
be:
* ehlo()
* starttls()
* ehlo()
* login()
....

--

Regards,
Tijs
Jun 1 '07 #2
Thanks for your response. I tried modifying the Roundup code as suggested:

class SMTPConnection(smtplib.SMTP):
''' Open an SMTP connection to the mailhost specified in the config
'''
def __init__(self, config):

smtplib.SMTP.__init__(self, config.MAILHOST)
self.set_debuglevel(1)
# start the TLS if requested
if config["MAIL_TLS"]:
self.ehlo()
self.starttls(config["MAIL_TLS_KEYFILE"],
config["MAIL_TLS_CERTFILE"])
self.ehlo()

# ok, now do we also need to log in?
mailuser = config["MAIL_USERNAME"]
if mailuser:
self.login(mailuser, config["MAIL_PASSWORD"])

I've inserted a call to ehlo() before and after the call to
starttls(). Adding the first call to ehlo() does help - I don't get so
many complaints from the server. But it still doesn't work- it seems
like the server stops responding after the call to starttls().

I have not specified a keyfile or certfile in the Roundup
configuration, but as I understand it these are optional, so I presume
this is not causing the problem.

[foobar@moe tracker]$ roundup-server -p 8081
roundup=/home/foobar/roundup/tracker
Roundup server started on :8081
send: 'ehlo moe.foobar.local\r\n'
reply: '250-smtpx15.msoutlookonline.net Hello [202.173.131.223]\r\n'
reply: '250-SIZE 31457280\r\n'
reply: '250-PIPELINING\r\n'
reply: '250-ENHANCEDSTATUSCODES\r\n'
reply: '250-STARTTLS\r\n'
reply: '250-AUTH LOGIN\r\n'
reply: '250-8BITMIME\r\n'
reply: '250-BINARYMIME\r\n'
reply: '250 CHUNKING\r\n'
reply: retcode (250); Msg: smtpx15.msoutlookonline.net Hello [202.173.131.223]
SIZE 31457280
PIPELINING
ENHANCEDSTATUSCODES
STARTTLS
AUTH LOGIN
8BITMIME
BINARYMIME
CHUNKING
send: 'STARTTLS\r\n'
reply: '220 2.0.0 SMTP server ready\r\n'
reply: retcode (220); Msg: 2.0.0 SMTP server ready
send: 'ehlo moe.foobar.local\r\n'
send: 'ehlo moe.foobar.local\r\n'
reply: '250-smtpx15.msoutlookonline.net Hello [202.173.131.223]\r\n'
reply: '250-SIZE 31457280\r\n'
reply: '250-PIPELINING\r\n'
reply: '250-ENHANCEDSTATUSCODES\r\n'
reply: '250-STARTTLS\r\n'
reply: '250-AUTH LOGIN\r\n'
reply: '250-8BITMIME\r\n'
reply: '250-BINARYMIME\r\n'
reply: '250 CHUNKING\r\n'
reply: retcode (250); Msg: smtpx15.msoutlookonline.net Hello [202.173.131.223]
SIZE 31457280
PIPELINING
ENHANCEDSTATUSCODES
STARTTLS
AUTH LOGIN
8BITMIME
BINARYMIME
CHUNKING
send: 'STARTTLS\r\n'
reply: '220 2.0.0 SMTP server ready\r\n'
reply: retcode (220); Msg: 2.0.0 SMTP server ready
send: 'ehlo moe.foobar.local\r\n'
192.168.100.68 - - [04/Jun/2007 10:43:24] "POST /roundup/issue1638
HTTP/1.1" 400 -
EXCEPTION AT Mon Jun 4 10:43:24 2007
Traceback (most recent call last):
File "/usr/lib/python2.3/site-packages/roundup/scripts/roundup_server.py",
line 106, in run_cgi
self.inner_run_cgi()
File "/usr/lib/python2.3/site-packages/roundup/scripts/roundup_server.py",
line 266, in inner_run_cgi
tracker.Client(tracker, self, env).main()
File "/usr/lib/python2.3/site-packages/roundup/cgi/client.py", line
196, in main
self.inner_main()
File "/usr/lib/python2.3/site-packages/roundup/cgi/client.py", line
314, in inner_main
self.mailer.exception_message()
File "/usr/lib/python2.3/site-packages/roundup/mailer.py", line 153,
in exception_message
self.standard_message(to, subject, content)
File "/usr/lib/python2.3/site-packages/roundup/mailer.py", line 93,
in standard_message
self.smtp_send(to, message)
File "/usr/lib/python2.3/site-packages/roundup/mailer.py", line 173,
in smtp_send
smtp = SMTPConnection(self.config)
File "/usr/lib/python2.3/site-packages/roundup/mailer.py", line 194,
in __init__
self.ehlo()
File "/usr/lib/python2.3/smtplib.py", line 390, in ehlo
(code,msg)=self.getreply()
File "/usr/lib/python2.3/smtplib.py", line 344, in getreply
line = self.file.readline()
File "/usr/lib/python2.3/smtplib.py", line 159, in readline
chr = self.sslobj.read(1)
sslerror: The read operation timed out

On 6/1/07, Tijs <ti*******@bluescraper.nlwrote:
carlistixx wrote:
[foobar@moe tracker]$ roundup-server -p 8081
roundup=/home/foobar/roundup/tracker
Roundup server started on :8081
send: 'STARTTLS\r\n'
reply: '503 5.5.2 Send hello first\r\n'
reply: retcode (503); Msg: 5.5.2 Send hello first

I think this must be an issue with roundup, issuing commands in the wrong
order. The correct order should (according to the rfc and the python docs)
be:
* ehlo()
* starttls()
* ehlo()
* login()
...

--

Regards,
Tijs
--
http://mail.python.org/mailman/listinfo/python-list
Jun 4 '07 #3

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

6
by: stewart.midwinter | last post by:
I'm having problem with a script that used to work under Win2k but is now broken after an install of WinXP Pro. I can no longer connect to a local mail server. Has anyone else seen this? If so,...
8
by: dccarson | last post by:
Here is a snippet of code which does not send to all recipients. However, it also does not inform me of this error. My suspicion is that this only fails for users with longer usernames. The two I...
3
by: Van_Gogh | last post by:
Hi, I am learning how to use the smtplib module, but am having some very early problems, maybe because I don't understand it. So, am I correct that by following the example in the Python: >>>...
0
by: Richard Jones | last post by:
I'm proud to release this, the 1.1.1 release of Roundup. Fixed in this release: - failure with browsers not sending "Accept-Language" header (sf bugs 1429646 and 1435335) - translate class...
5
by: tobiah | last post by:
In the example at: http://docs.python.org/lib/SMTP-example.html The text of the email message ends up with the From: and To: headers in it, and yet the call to sendmail() on the server object...
158
by: Giovanni Bajo | last post by:
Hello, I just read this mail by Brett Cannon: http://mail.python.org/pipermail/python-dev/2006-October/069139.html where the "PSF infrastracture committee", after weeks of evaluation, recommends...
4
by: Richard Jones | last post by:
I'm proud to release version 1.1.3 of Roundup. Feature: - supports Python 2.5, including the sqlite3 module - full timezone support (sf patch 1465296) - handle connection loss when responding...
0
by: Richard Jones | last post by:
I'm proud to release version 1.3.3 of Roundup. Fixed in 1.3.3: - If-Modified-Since handling was broken - Updated documentation for customising hard-coded searches in page.html - Updated...
1
by: Benedict Verheyen | last post by:
Hi, i get an "Unable to relay for" when trying to send an email from within my network to an email address not on my domain. I don't understand why it says "relaying" as i'm sending from an...
3
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 3 Jan 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). For other local times, please check World Time Buddy In...
0
by: jianzs | last post by:
Introduction Cloud-native applications are conventionally identified as those designed and nurtured on cloud infrastructure. Such applications, rooted in cloud technologies, skillfully benefit from...
2
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 7 Feb 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:30 (7.30PM). In this month's session, the creator of the excellent VBE...
0
Git
by: egorbl4 | last post by:
Скачал я git, хотел начать настройку, а там вылезло вот это Что это? Что мне с этим делать? ...
0
by: MeoLessi9 | last post by:
I have VirtualBox installed on Windows 11 and now I would like to install Kali on a virtual machine. However, on the official website, I see two options: "Installer images" and "Virtual machines"....
0
by: DolphinDB | last post by:
The formulas of 101 quantitative trading alphas used by WorldQuant were presented in the paper 101 Formulaic Alphas. However, some formulas are complex, leading to challenges in calculation. Take...
0
by: DolphinDB | last post by:
Tired of spending countless mintues downsampling your data? Look no further! In this article, you’ll learn how to efficiently downsample 6.48 billion high-frequency records to 61 million...
0
by: Aftab Ahmad | last post by:
So, I have written a code for a cmd called "Send WhatsApp Message" to open and send WhatsApp messaage. The code is given below. Dim IE As Object Set IE =...
0
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 6 Mar 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). In this month's session, we are pleased to welcome back...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.