AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke email abrufen: Kopie am Server belassen
Thema durchsuchen
Ansicht
Themen-Optionen

email abrufen: Kopie am Server belassen

Ein Thema von erich.wanker · begonnen am 5. Mai 2017 · letzter Beitrag vom 6. Mai 2017
Antwort Antwort
Benutzerbild von erich.wanker
erich.wanker

Registriert seit: 31. Jan 2008
Ort: im schönen Salzburger Land
454 Beiträge
 
Delphi XE4 Professional
 
#1

email abrufen: Kopie am Server belassen

  Alt 5. Mai 2017, 13:01
Hallo Leute,

kurze Frage: wie kann ich (ähnlich wie im Outlook) beim Abrufen von eMails eine Kopie am server belassen?

- und wie check ich, ob ich eine Mail bereits downgeloadet habe oder nicht ???


ich verwende zum Abrufen der Mails (inkl. speichern als html oder textfile) folgendes:
Delphi-Quellcode:

procedure TUniServerModule.UniThreadTimer1Timer(Sender: TObject);
// UniMainModule
var MailCount,Mailgroesse,intIndex :Integer;
    itm:TListItem;
    i:integer;
    s:string;
begin

      POP.Host := 'pop.1und1.de';
      POP.Port := 995;
      POP.Username := 'xxxxxx';
      POP.Password := 'yyyyyyy';
      POP.Connect;


      Logger.AddLog(' .. erzeuge Verbindung zum POP Server....');

      MailCount := POP.CheckMessages;


      if MailCount = 0 then Logger.AddLog('Keine neuen Mails vorhanden...');

      if MailCount >0 then
      begin

          for intIndex := 1 to MailCount do
          begin
            msg.Clear;
            pop.Retrieve(intIndex, Msg);

            Logger.AddLog('MIMEBoundary: '+inttostr(msg.MIMEBoundary.Count));
            if msg.IsMsgSinglePartMime then Logger.AddLog('IsMsgSinglePartMime');
            if msg.IsEncoded then Logger.AddLog('IsEncoded');
            if msg.IsMsgSinglePartMime then Logger.AddLog('IsMsgSinglePartMime');
            if msg.NoEncode then Logger.AddLog('NoEncode');

            Logger.AddLog('------------------------------------------');



                //Anhang
                for i := 0 to Msg.MessageParts.Count-1 do begin
                  if Msg.MessageParts.Items[i] is tIdAttachment then
                      begin
                        s := (Msg.MessageParts.Items[i] as tIdAttachment).Filename;
                        Logger.AddLog('Anhang: '+s);
                       (Msg.MessageParts.Items[i] as tIdAttachment).savetofile(uniservermodule.FilesFolderPath +'Mails\Anhang_' + IntToStr(intIndex) +s);
                      end;
                end;


                // HTML Mail
                if msg.MessageParts.Count > 0 then
                begin
                Logger.AddLog('HTML-Mail:');
                for i := 0 to Msg.MessageParts.Count-1 do begin
                    if Msg.MessageParts.Items[i] is TIdText then
                     begin
                      //Logger.AddLogStrings(TIdText(Msg.MessageParts.Items[i]).Body);
                      TIdText(Msg.MessageParts.Items[i]).Body.SaveToFile(uniservermodule.FilesFolderPath +'Mails\html_' + IntToStr(intIndex) + '.html');
                     end;
                end;
                end;


                // Text Mail
                if msg.ContentType = 'text/plainthen
                begin
                Logger.AddLog('TXT-Mail:');
                  //Logger.AddLogStrings(msg.body);
                  Msg.Body.SaveToFile(uniservermodule.FilesFolderPath +'Mails\text_' + IntToStr(intIndex) + '.txt');
                end;


            pop.Delete(intIndex); // Löscht die aktuelle Mail !!!!
            end;
      end;
      POP.Disconnect;




end;
Erich Wanker - for life:=1971 to lebensende do begin ..
O
/H\
/ \
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#2

AW: email abrufen: Kopie am Server belassen

  Alt 5. Mai 2017, 13:07
Indem du diese Zeile auskommentierst / löschst:
pop.Delete(intIndex); // Löscht die aktuelle Mail !!! Um die Mails eindeutig zu ideintifizieren, suche mal nach UIDL oder MsgId. So findest Du Lösungen.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: email abrufen: Kopie am Server belassen

  Alt 5. Mai 2017, 13:08
Hallo,

Zitat:
kurze Frage: wie kann ich (ähnlich wie im Outlook) beim Abrufen von eMails eine Kopie am server belassen?
indem du das Delete wegläßt ...

Zitat:
und wie check ich, ob ich eine Mail bereits downgeloadet habe oder nicht ???
MsgId prüfen, du musst dir die heruntergeladenen Mails anhand der MsgId's irgendwo merken.


zu spät ...
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von erich.wanker
erich.wanker

Registriert seit: 31. Jan 2008
Ort: im schönen Salzburger Land
454 Beiträge
 
Delphi XE4 Professional
 
#4

AW: email abrufen: Kopie am Server belassen

  Alt 5. Mai 2017, 13:14
shit ... ich lösche sie ja selber !! .... wer seinen eigenen code lesen kann ist klar im Vorteil


Vielen Dank
Erich Wanker - for life:=1971 to lebensende do begin ..
O
/H\
/ \
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: email abrufen: Kopie am Server belassen

  Alt 5. Mai 2017, 14:17
Hätteste mal kommentiert
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von erich.wanker
erich.wanker

Registriert seit: 31. Jan 2008
Ort: im schönen Salzburger Land
454 Beiträge
 
Delphi XE4 Professional
 
#6

AW: email abrufen: Kopie am Server belassen

  Alt 5. Mai 2017, 14:19
Erich Wanker - for life:=1971 to lebensende do begin ..
O
/H\
/ \
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

AW: email abrufen: Kopie am Server belassen

  Alt 5. Mai 2017, 20:19
Was will man bei pop.Delete(...); noch kommentieren?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#8

AW: email abrufen: Kopie am Server belassen

  Alt 5. Mai 2017, 20:37
 // Löscht die aktuelle Mail !!!!
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
3.916 Beiträge
 
Delphi 12 Athens
 
#9

AW: email abrufen: Kopie am Server belassen

  Alt 6. Mai 2017, 06:31
Kommentiert wird meist erst NACH der Erkenntnis ...

  pop.Delete(...); // shit ... ich lösche sie ja selber !! .... wer seinen eigenen code lesen kann ist klar im Vorteil
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21: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