Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Mail Header auslesen ob Spam oder nicht ??? (https://www.delphipraxis.net/64114-mail-header-auslesen-ob-spam-oder-nicht.html)

wlfmario 27. Feb 2006 18:32


Mail Header auslesen ob Spam oder nicht ???
 
Hallo zusammen,

ich überlege wie man Mails die als Spam gekennzeichnet sind (Information im Header) umbenennen oder Löschen kann.
Gut das Kennzeichnen oder Löschen ist jetzt nicht das Problem aber wie kann ich nun den Header Testen ob die Informationen dort drinn stehen ?
hier mal ein Beispiel:

Zitat:

Received: from localhost by Server.provider.net
with SpamAssassin (2.64 2004-01-11);
Mon, 27 Feb 2006 18:33:44 +0100
From: "Vorname Name" <info@domain.de>
To: empf@domain.de
Subject: test ohne 9999
Date: Mon, 27 Feb 2006 18:31:30 +0100
Message-Id: <20060227173344.51AD5108093@Server.provider.net>
X-Spam-Status: Yes, hits=8.0 required=5.0 tests=MIME_BOUND_NEXTPART,
MIME_BOUND_RKFINDY,MSGID_FROM_MTA_SHORT,X_LIBRARY autolearn=no
version=2.64
X-Spam-Level: *******
X-Spam-Checker-Version: SpamAssassin 2.64 (2004-01-11) on
server.provider.net
X-Spam-Flag: YES
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=_NextPart_2rfkindysadvnqw3nerasdf"
X-UIDL: ZD#"!^)o"!^9G"!(V1"!
X-Priority: 3
X-Library: Indy 9.00.10

This is a multi-part message in MIME format

--=_NextPart_2rfkindysadvnqw3nerasdf
Content-Type: text/plain
Content-Transfer-Encoding: 7bit

This is a multi-part message in MIME format.
....
...
..

glkgereon 27. Feb 2006 18:51

Re: Mail Header auslesen ob Spam oder nicht ???
 
also ich vermute mal du willst das ***** als String da raushaben, oder?

das ginge so:

Delphi-Quellcode:
function GetSpamLevel(S: TStringList): String;
begin
  Result:='';
  if Pos('X-Spam-Level',S.Text)=0 then Exit;
  while Pos('X-Spam-Level',S[0])=0 do S.Delete(0);
  Result:=Copy(S[0],Pos(':',S[0])+1,MaxInt);
end;
Sollte zumindest ;)

wlfmario 27. Feb 2006 19:03

Re: Mail Header auslesen ob Spam oder nicht ???
 
Danke !

Da hätte ich aber auch selber drauf kommen können ! 'SCHÄM'

marabu 27. Feb 2006 19:54

Re: Mail Header auslesen ob Spam oder nicht ???
 
Hallo Mario,

eine weitere Möglichkeit - falls du den Indy POP3-Client verwendest - wäre das Abholen nur der Kopfzeilen (ungetestet):

Delphi-Quellcode:
var
  msg: TIdMessage;
  n: Integer;
  s: String;
begin
  // ...
  with pop3 do
  begin
    RetrieveHeaders(n, msg);
    s := Copy(Trim(Uppercase(msg.ExtraHeaders.Values['X-Spam-Status'])), 1, 3);
    if s = 'YES' then
      ShowMessage('spam again');
  end;
end;
Grüße vom marabu

wlfmario 27. Feb 2006 19:59

Re: Mail Header auslesen ob Spam oder nicht ???
 
Na dann lag ich ja doch nicht so falsch !
Ich habe es jetzt so geregelt, damit kann ich auch beim Laden der Mails von der Platte den Status prüfen.

Delphi-Quellcode:
if pos('X-Spam-Status: Yes', msg.Headers.Text) <> 0 then
          itm.SubItems.Add(Msg.Subject + ' *** SPAM ***')
        else
          itm.SubItems.Add(Msg.Subject);


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:30 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz