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
|