Done:= false;
repeat
ReadOK:= TCP.ReadLn(Line);
- if Line <> '.' then
- SpoolObject.DeliverMessagePart(Line)
+ if Line <> '.' then begin
+ { If the line starts with a dot, remove it to comply with RFC. }
+ if (Length(Line) > 1) and (Line[1] = '.') then Delete(Line, 1, 1);
+ SpoolObject.DeliverMessagePart(Line);
+ end
else
Done:= true;
until Done or (not ReadOK);
document what bugfix/feature are you testing with the actual build.
This will be logged to help you differentiate outputs of subsequent
builds in your logs. If left empty, it won't be added to the logs. }
- DEVCOMMENT = 'New feature to add "Reply-To" to forwarded messages';
+ DEVCOMMENT = 'Escaping dots';
var
function TRelayer.DeliverMessagePart(Chunk: TStrings): boolean;
{ Sends a chunk of the message. }
+var i: integer;
begin
+ { Check for lines starting with dots. }
+ for i:= 0 to Chunk.Count - 1 do
+ if (Length(Chunk.Strings[i]) > 0) and (Chunk.Strings[i][1] = '.') then
+ Chunk.Strings[i]:= '.' + Chunk.Strings[i];
+
+ { Send text. }
Result:= TCP.WriteBuffer(PChar(Chunk.Text), Length(Chunk.Text)) <> -1;
end;
- IPv6
- Bind to user-specified IPs
+ Option to add Reply-To header to forwarded e-mails
++ Fix non-RFC-compliant handling of lines starting with dots
+- Fall back to HELO when remote server doesn't support EHLO
+- Implement CHUNKING extension
v0.9s:
+ Change "Client disconnected, and thread exited successfully." to "Client disconnected."