Hallo
Ich hab mal ein wenig probiert und mir was gebastelt.
Ist es möglich das sich mal jemand den Quellcode ansehen kann, ob das so richtig ist, oder ob man das ein oder andere optimieren kann?
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80:
| procedure TForm1.Mailsprfen1Click(Sender: TObject); var AnzahlMail,AnzahlAnhang,i,neu : Integer; IdMessage1 : TIdMessage; Dateiname,Pfad,Zeitstempel : String; begin i := 0; neu := 0;
init;
POP.Host := 'pop.gmx.net'; POP.Connect;
Pfad := ExtractFilePath(ParamStr(0)) + 'Mail-Anhang\'; if not DirectoryExists(Pfad) then CreateDir(Pfad);
StatusBar1.Panels[0].Text := ' Posteingang wird geprüft ...'; for AnzahlMail := 1 to POP.CheckMessages do begin StatusBar1.Panels[1].Text := ' Mail: ' + IntToStr(AnzahlMail) + ' / ' + IntToStr(POP.CheckMessages); StatusBar1.Panels[2].Text := ' Gefunden: ' + IntToStr(i); Application.ProcessMessages;
IdMessage1 := TIdMessage.Create(Self); POP.Retrieve(AnzahlMail, IdMessage1); if IdMessage1.MessageParts.Count > 0 then begin for AnzahlAnhang := 0 to IdMessage1.MessageParts.Count - 1 do begin if (IdMessage1.MessageParts.Items[AnzahlAnhang] is TIdAttachment) then begin Dateiname := TIdAttachment(IdMessage1.MessageParts.Items[AnzahlAnhang]).Filename; if (ExtractFileExt(Dateiname) = '.xlsx') or (ExtractFileExt(Dateiname) = '.xls') then begin if MsgID_pruefen(IdMessage1.MsgId) then begin MsgID_schreiben(IdMessage1.MsgId);
neu := neu + 1;
Zeitstempel := FormatDateTime('ddmmyyyyhhnnss', Now); Pfad := ExtractFilePath(ParamStr(0)) + 'Mail-Anhang\' + Zeitstempel + '_' + Dateiname;
TIdAttachment(IdMessage1.MessageParts.Items[AnzahlAnhang]).SaveToFile(Pfad); end;
i := i + 1;
StringGrid1.Cells[0,i] := IdMessage1.MsgId; if UploadID_pruefen(IdMessage1.MsgId) then StringGrid1.Cells[1,i] := '1'; StringGrid1.Cells[3,i] := DateToStr(IdMessage1.Date); StringGrid1.Cells[4,i] := UTF8ToAnsi(IdMessage1.Subject); StringGrid1.Cells[5,i] := UTF8ToAnsi(IdMessage1.From.Text); StringGrid1.Cells[6,i] := Dateiname; end; end; end; end; IdMessage1.Free; end;
if i > 0 then begin SetHeader; AutoSetAnzeige(StringGrid1); end;
if neu = 1 then StatusBar1.Panels[0].Text := IntToStr(neu) + ' neue Meldung' else StatusBar1.Panels[0].Text := IntToStr(neu) + ' neue Meldungen'; StatusBar1.Panels[1].Text := ''; StatusBar1.Panels[2].Text := '';
POP.Disconnect; end; |
Vielen Dank
lg
Oli