On Tue, 5 Jul 2016 06:13:25 -0500, John F. Morse wrote:
> I don't use 40tude Dialog (nor Windows), so I can't test this, but you might
> try using a delimiter, perhaps a comma, between multiple field values.
>
> Example:
>
> RemoveHeader='Date','Message-ID';
>
> A space (or two) may be required next to the comma.
Thank you for your advice of adding either a space or a comma as a
delimiter.
I had tried both to no avail with the initial *.ds script.
What I did, which is successful, is I used a better written script!
I picked up the script on the Internet.
program OnBeforeSendingMessage;
// Date: 2004/11/16
const
// ----------------------------------------------------
// Configuration settings
// ----------------------------------------------------
// Set the header(s) you want to remove here, e.g.,
// Remove_Headers = 'X-Scoring: ,X-Hamster-Info: ';
// Remove_Headers='User-Agent: ,Message-ID: ,Date: ';
Remove_Headers='User-Agent: ,Message-ID: ,Mime-Version: ,Content-Type: ';
// Remove header(s) from emails and/or postings
// Please set only to 'true' or 'false'
RemoveFromEmails = false;
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.