Please read How (Not) To Ask A Question, particularly as providing your script would be incredibly invaluable in understanding/replicating your issue. Seeing as there are carriage returns sitting on the response lines, I would see that as a potential cause. I looked through the source for Mail::POP3Client and noted an undocumented key 'STRIPCR' commented with "# Macs seem to leave CR's or LF's sitting on the socket. This # removes them." Perhaps you could try setting $o->{STRIPCR} = 1 after you call the constructor? If this works, I would suggest submitting a bug report.
| [reply] [d/l] |
It looks like OP problem is because Mail::POP3Client stops reading message if it sees line consisting only from a dot (that is right thing according to standard, btw), and not because the CRLF line endings which are absolutely normal too. According to RFC 1939:
When all lines of the response have been sent, a
final line is sent, consisting of a termination octet (decimal code 046, ".") and a CRLF pair. If any line of the multi-line response begins with the termination octet, the line is "byte-stuffed" by pre-pending the termination octet to that line of the response. Hence a multi-line response is terminated with the five octets
"CRLF.CRLF". When examining a multi-line response, the client checks to see if the line begins with the termination octet. If so and if octets other than CRLF follow, the first octet of the line (the termination octet) is stripped away.
So if you server returns to you CRLF.CRLF before the message ends, it's a bug in your server and not in the module.
| [reply] |