Hi, When encoded data size is divisible by 72 (line length) DoFileEncBase64() returns More = TRUE upon the last data chunk even though there are no more bytes left in the stream. It is because More is just calculated by "More := (ByteCount = 3);". In those cases an additional blank line may be inserted at the end of the Base64 data in the MIME part (if the part isn't the last). You can reproduce this issue with the MailSnd demo and the file attachments ics_logo.gif and fp_small.gif.
A reliable way to calculate More was "More := Stream.Position < Stream.Size;" however that is slower since Stream.Size has to seek to the end of the stream and the back to current position on each call of DoFileEncBase64(). (Instead of Stream.Size we could also check against file size, however only with ShareMode fmShareDenyWrite). So, do we have to find a fix or is such an additional blank line in Base64 MIME parts acceptable? What do you think? -- Arno Garrels [TeamICS] http://www.overbyte.be/eng/overbyte/teamics.html -- To unsubscribe or change your settings for TWSocket mailing list please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be
