roxen.lists.roxen.general

Subject Author Date
email module: long line problem Sascha Nemecek <sascha[dot]n[at]aon[dot]at> 23-04-2009
Hi there,

I was playing around with the email module for the past few hours, 
because of the following problem:

When an email sent with <email>/ contains a long line (~1000+ chars), at 
some point spaces are inserted into the message "randomly".

Here is a test-case:
> <email mimetype="text/html" from="<some[at]email.com>" to="<some[at]email.com>"
subject="SUBJECT">
> 0123456789abcdef 0123456789abcdef 0123456789abcdef 0123456789abcdef
0123456789abcdef 0123456789abcdef 0123456789abcdef 0123456789abcdef
0123456789abcdef 0123456789abcdef 0123456789abcdef 0123456789abcdef
0123456789abcdef 0123456789abcdef 0123456789abcdef 0123456789abcdef
0123456789abcdef 0123456789abcdef 0123456789abcdef 0123456789abcdef
0123456789abcdef 0123456789abcdef 0123456789abcdef 0123456789abcdef
0123456789abcdef 0123456789abcdef 0123456789abcdef 0123456789abcdef
0123456789abcdef 0123456789abcdef 0123456789abcdef 0123456789abcdef
0123456789abcdef 0123456789abcdef 0123456789abcdef 0123456789abcdef
0123456789abcdef 0123456789abcdef 0123456789abcdef 0123456789abcdef
0123456789abcdef 0123456789abcdef 0123456789abcdef 0123456789abcdef
0123456789abcdef 0123456789abcdef 0123456789abcdef 0123456789abcdef
0123456789abcdef 0123456789abcdef 0123456789abcdef 0123456789abcdef
0123456789abcdef 0123456789abcdef 0123456789abcdef 0123456789abcdef
0123456789abcdef 0123456789abcdef 0
123456789abcdef 0123456789abcdef 0123456789abcdef 0123456789abcdef
0123456789abcdef 0123456789abcdef 0123456789abcdef 0123456789abcdef
0123456789abcdef 0123456789abcdef 0123456789abcdef 0123456789abcdef
0123456789abcdef 0123456789abcdef 0123456789abcdef 0123456789abcdef
0123456789abcdef 0123456789abcdef 0123456789abcdef 0123456789abcdef
0123456789abcdef 0123456789abcdef 0123456789abcdef 0123456789abcdef
0123456789abcdef 0123456789abcdef 0123456789abcdef 0123456789abcdef
0123456789abcdef 0123456789abcdef 0123456789abcdef
> </email>

The resulting email output:
> 0123456789abcdef 0123456789abcdef 0123456789abcdef 0123456789abcdef 
> 0123456789abcdef 0123456789abcdef 0123456789abcdef 0123456789abcdef 
> 0123456789abcdef 0123456789abcdef 0123456789abcdef 0123456789abcdef 
> 0123456789abcdef 0123456789abcdef 0123456789abcdef 0123456789abcdef 
> 0123456789abcdef 0123456789abcdef 0123456789abcdef 0123456789abcdef 
> 0123456789abcdef 0123456789abcdef 0123456789abcdef 0123456789abcdef 
> 0123456789abcdef 0123456789abcdef 0123456789abcdef 0123456789abcdef 
> 0123456789abcdef 0123456789abcdef 0123456789abcdef 0123456789abcdef 
> 0123456789abcdef 0123456789abcdef 0123456789abcdef 0123456789abcdef 
> 0123456789abcdef 0123456789abcdef 0123456789abcdef 0123456789abcdef 
> 0123456789abcdef 0123456789abcdef 0123456789abcdef 0123456789abcdef 
> 0123456789abcdef 0123456789abcdef 0123456789abcdef 0123456789abcdef 
> 0123456789abcdef 0123456789abcdef 0123456789abcdef 0123456789abcdef 
> 0123456789abcdef 0123456789abcdef 0123456789abcdef 0123456789abcdef 
> 0123456789abcdef 0123456789abcdef 0123 456789abcdef 0123456789abcdef 
                                         ^- additional whitespace
> 0123456789abcdef 0123456789abcdef 0123456789abcdef 0123456789abcdef 
> 0123456789abcdef 0123456789abcdef 0123456789abcdef 0123456789abcdef 
> 0123456789abcdef 0123456789abcdef 0123456789abcdef 0123456789abcdef 
> 0123456789abcdef 0123456789abcdef 0123456789abcdef 0123456789abcdef 
> 0123456789abcdef 0123456789abcdef 0123456789abcdef 0123456789abcdef 
> 0123456789abcdef 0123456789abcdef 0123456789abcdef 0123456789abcdef 
> 0123456789abcdef 0123456789abcdef 0123456789abcdef 0123456789abcdef 
> 0123456789abcdef

The question is, where does the additional whitespace come from?
BTW: I am using Roxen 4.5.146


I did a few tests with the email module and come to the conclusion, that 
the problem might reside deeper, since the message is still intact 
before the "o->send_message(from, to, message)" call.

Looking into SMTP.pmod, in the function send_message(), the mail-body is 
still intact.

Digging deeper brought me to the NNTP->command() function, and from 
there I came to Stdio.File()->write(). That's where I stopped, because 
this is beyond my limited pike knowledge.


Could anybody please verify the problem? Maybe on a Roxen 5 with a 
recent pike version?


To the more pike affine people:
To me it seems as if a buffer fills up during the SMTP negotiation, and 
upon spillover the space is inserted into the message. Maybe this is 
this per design? Can anybody think of a solution for this problem?


Best regards,
Sascha