kaythorn wrote:
>>> Is there something I can do to pacify X-Spam?
>> 
>> Remove that space (the one between Roland and Couvela).
> 
> Shall we modify function GenerateMessageID? Something like:
> 
> 
> .....but wouldn't it be simpler to use SignOn if it exists, then it
> would be under the control of the application and also match HELO? 

OK, but in TCustomSmtpClient.Helo/Ehlo the FSignOn may not be built
correctly as well, so below is another suggestion, if someone has a 
better idea please post your opinion. What do you think?

---
Arno Garrels [TeamICS]
http://www.overbyte.be/eng/overbyte/teamics.html

 

{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
function FixHostName(const S: String): String;                           {AG}
var
    I, J : Integer;
begin
    Result := LowerCase(S);
    if Length(Result) = 0 then
    begin
        Result := '_'; // invalid char, or should we return a syntactically 
correct dummy? 
        Exit;
    end;
    J := 1;
    for I := 1 to Length(Result) do begin
        if (J = 1) and not(Result[I] in ['a'..'z']) then
            Continue;
        if (Result[I] in ['-', '.', '0'..'9', 'a'..'z']) then begin
            if J <> I then
                Result[J] := Result[I];
            Inc(J);
        end;
    end;
    SetLength(Result, J - 1);
    while (Length(Result) > 0) and (Result[Length(Result)] in ['-', '.']) do
        SetLength(Result, Length(Result) - 1);
    if Length(Result) = 0 then
        Result := '_'; // invalid char, or should we return a syntactically 
correct dummy?
end;

  
{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
function GenerateMessageID(const HostName: String) : String;            {AG} 
//param HostName added
begin
    Result := FormatDateTime('yyyymmddhhnnsszzz', Now + TimeZoneBiasDT) + '.' +
              IntToHex(Random(32767), 4) + IntToHex(Random(32767), 4) +
              IntToHex(Random(32767), 4) + IntToHex(Random(32767), 4) +
              '@' + HostName;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TCustomSmtpClient.Data; 
[..]
        if FSignOn = '' then
            FMessageID := GenerateMessageID(FixHostName(LocalHostName))
        else
            FMessageID := GenerateMessageID(FixHostName(FSignOn));
[..]


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TCustomSmtpClient.Helo;
var
    I   : Integer;
    Buf : String;
begin
    FFctPrv := smtpFctHelo;
    if FSignOn = '' then
        Buf := FixHostname(LocalHostName)
    else
        Buf := FixHostname(FSignOn);
    
    { Replace any space by underscore }
    {for I := 1 to Length(Buf) do begin
        if Buf[I] = ' ' then
            Buf[I] := '_';
    end;}
    ExecAsync(smtpHelo, 'HELO ' + Buf, [250], nil);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TCustomSmtpClient.Ehlo;
var
    I   : Integer;
    Buf : String;
begin
    FAuthTypesSupported.Clear;
    FFctPrv := smtpFctEhlo;
    if FSignOn = '' then
        Buf := FixHostName(LocalHostName)
    else
        Buf := FixHostName(FSignOn);

    { Replace any space by underscore }
    {for I := 1 to Length(Buf) do begin
        if Buf[I] = ' ' then
            Buf[I] := '_';
    end;}
    ExecAsync(smtpEhlo, 'EHLO ' + Buf, [250], EhloNext);
end;

 

-- 
To unsubscribe or change your settings for TWSocket mailing list
please goto http://www.elists.org/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be

Reply via email to