ich habe ein problem mit der verarbeitung von multipart-emails, genauer gesagt bei text-multiparts.
folgendes soll gemacht werden:
- email (liegt als datei vor) öffnen
- email in ihre bestandteile zerlegen und in einer tabelle ablegen.
ich verwende dazu die
indy-komponente, allerdings scheint es so als ob die ärger machen würde.
wenn mehrere emails in einer stapelverarbeitung "zerlegt" werden, kommt es vor dass text-multiparts zwar als text erkannt werden, allerdings stimmt der content-type (TIdMessage.Multiparts.Items[i].ContentType) nicht mit dem im jeweiligen header überein, in wirklichkeit ist es zb text/plain oder text/
html, ausgegeben wird aber "multipart/alternative".
dies tritt allerdings nicht auf wenn die mail nach programmstart zum ersten mal verarbeitet wird, sondern erst wenn mehrere mails in einer stapelverarbeitung zerlegt werden. ich kann nicht genau sagen ab wann der abgerufene content-type nicht mehr stimmt, aber beispielsweise gibt es mails die beim zweiten mal in der verarbeitung nicht mehr richtig verarbeitet werden. ich habe den verdacht dass dies eher bei mails mit ein oder 2 attachments und sowohl plain- als auch
html-text vorkommt, es ist jedenfals kein problem den fehler hervorzurufen wenn man sich ein paar testmails generiert und die einfach durchlaufen lässt (immer die selben, garantiert unverändert, aber auf einmal stimmts dann nicht mehr mit dem content-type). wenn erstmal eine falsch verarbeitet wurde, wird eigentlich bei keiner darauf folgenden mail der textteil korrekt erkannt sondern nurnoch "multipart/alternative" ausgegeben. erst nach schliessen & öffnen des programms stimmts erstmal wieder.
vereinfacht gesagt mache ich folgendes:
Delphi-Quellcode:
idmessage.clear;
idmessage.loadfromfile(filename);
for i:=0 to idmessage.messageparts.count -1 do
begin
if (idmessage.MessageParts.Items[i] is TIdText) then
if idmessage.MessageParts.Items[i].ContentType = 'text/plain' then // hier stimmts irgendwann nicht mehr....
[...]
end
ich kann mir nun beim besten willen nicht erklären warum dieser vorgang irgendwann nicht mehr funktioniert.... habe schon die
indy-version die bei D2005 prof. enthalten ist auf 10.0.52 aktualisiert, erfolglos.... ich hoffe nun dass ihr mir entweder helfen könnt den fehler zu finden, oder eine andere komponente vorschlagen könnt mit der sich emails ebenfalls in alle ihre einzelteile/attachments/etc zerlegen lassen
danke schonmal!