Lately, emails sent from some clients are received in duplicates. The clients either run Communigate Pro, or IPlanet, MDaemon, all running some versions of Windows.
The emails duplicate because the client sends it multiple times. The cause is when it finishes sending DATA (with "."), my program replies with the "250" response but the client didn't receive it. After long waiting, it would disconnect and later try sending again, several times.
Emails from other senders, like yahoogroups, hotmail, etc. do not experience this problem.
After some more testing, a filtering seems to be the cause of the problem.
If I print
"250 QUEUED - 123"
or (somewhat mimicking qmail)
"250 QUEUED(250) - 1084263071 qp 4221"
then everything works, but if I send:
"250 QUEUED(250) - 8c3d931926ca4e8a9dfea84f06dbdc1a"
then the client won't receive the above 250 response line. The 32 hexacharacter part is a GUID which I produce randomly using 16 bytes retrieved every time from /dev/urandom. Now why would a proxy or a firewall regard a random 32 hexadecimal character as suspicious and block/filter it? Is this a known problem?
I couldn't find any other cause (like line-ending differences, buffering issues) aside from this particular thing that seems to cause the problem.
Any insight would be appreciated.
-- dave
-- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>