RemoveHeaders
From 40tude Dialog Wiki
[edit]
Remove any header
With this little script (done by Thomas Barghahn) you are able to delete any header and its content from your emails and/or postings. If you found bugs feel free to contact the autor Thomas Barghahn (Th.Barghahn@t-online.de).
[edit]
Install & setup the script
Of course the tags alone won't do much. You have to insert the following script into the OnBeforeSendingMessage event of your scripting window.
Change the following lines inside the script, to define you're own setup.
// set the header(s) you want to remove here, e.g. 'User-Agent: ,X-Scoring: ' Remove_Headers = 'X-Scoring: '; // remove header(s) from emails and/or postings // set 'true' or 'false' RemoveFromEmails = true; RemoveFromNews = true;
[edit]
The script
program OnBeforeSendingMessage;
//
// Date: 2004/11/16
//
const
// ----------------------------------------------------
// Configuration settings
// ----------------------------------------------------
// set the header(s) you want to remove here, e.g. 'User-Agent: ,X-Scoring: '
Remove_Headers = 'X-Scoring: ,X-Hamster-Info: ';
// remove header(s) from emails and/or postings
// set 'true' or 'false'
RemoveFromEmails = true;
RemoveFromNews = true;
// ----------------------------------------------------
// End of configuration settings
// ----------------------------------------------------
// --------------------------------------------------------------- //
// ---- No user maintainable parts below this line -------------- //
// --------------------------------------------------------------- //
procedure RemoveHeaders ( Message : TStringlist;
IsEmail : boolean
);
var i : integer;
k : integer;
s : string;
CommaPos : integer;
DelHeader : TStringlist;
RemoveH : String;
begin
RemoveH := Remove_Headers;
i := 0;
if ((IsEmail=true) and (RemoveFromEmails=true)) or
((IsEmail=false) and (RemoveFromNews=true)) then begin
If ( RemoveH <> '' ) then begin
try
DelHeader := TStringlist.Create;
if ansipos ( ',', RemoveH) = 0 then begin
DelHeader.Add ( LowerCase ( TrimLeft( RemoveH )));
end // if
else begin
CommaPos := 0;
for k := 1 to length ( RemoveH ) do begin
If RemoveH[k] = ',' then begin
DelHeader.Add ( LowerCase ( TrimLeft (copy ( RemoveH, CommaPos + 1, k - ( CommaPos + 1 )))));
CommaPos := k;
end; // if
if k = length ( RemoveH ) then
DelHeader.Add ( LowerCase ( TrimLeft (copy ( RemoveH, CommaPos + 1, k - CommaPos ))));
end; // for
end; // else
s:=Message.text;
while (Message.Strings[i]<>'') do begin
k := 0;
while k <= ( DelHeader.Count - 1 ) do begin
if pos( DelHeader[k], LowerCase ( Message.Strings[i] )) = 1 then begin
delete ( s, pos(DelHeader[k], LowerCase (s) ), length ( Message.Strings[i] ) + 2 );
i := i - 1;
k := DelHeader.Count - 1;
message.text := s;
end; // if
k := k + 1;
end; // while
i := i + 1;
end; //while
message.text:=s;
finally
DelHeader.Free;
end; // try - finally
end; // if
end; // if
end; // RemoveHeaders
function OnBeforeSendingMessage(var Message : TStringlist;
Servername : string;
IsEmail : boolean
):boolean;
begin
RemoveHeaders(Message,IsEmail);
result:=true;
end;
// ----------------------------------------------------------------------
begin
end.