AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi TidPop3 und fehlender Body Content-Transfer-Encoding: Base64
Thema durchsuchen
Ansicht
Themen-Optionen

TidPop3 und fehlender Body Content-Transfer-Encoding: Base64

Ein Thema von Drop Table · begonnen am 21. Mär 2008 · letzter Beitrag vom 21. Mär 2008
 
Drop Table

Registriert seit: 16. Aug 2006
Ort: Wedel
26 Beiträge
 
Turbo Delphi für Win32
 
#1

TidPop3 und fehlender Body Content-Transfer-Encoding: Base64

  Alt 21. Mär 2008, 09:14
Hallo,

bevor ich endgültig aufgebe meine Mails mit Indy9 oder 10 zu verarbeiten, wollte ich euch nochmal fragen, ob ihr in dem Code einen Fehler seht, oder ob noch etwas fehlt.

Die Routine verarbeitet Textmails, sowie Mails mit Attachments einwandfrei, nur bei folgender Mail komme ich nicht an den Body ran.
Zitat:
MIME-Version: 1.0
From: <noreply@example.com>
To: pq@example.com
Date: 20 Mar 2008 15:25:55 -0700
Subject: [GEO] Notify
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: base64
Message-Id: <20080320222555.5DCD69F946@signal.example.com>

VGhpcyBpcyBhbiBhdXRvbWF0ZWQgbWVzc2FnZSBmcm9tIEdlb2 NhY2hpbmcNCg0KRm9yIEdD
WkNZQTogWndpc2NoZW4gZGVuIFRyZXBwZW4gKEFyY2hpdmVkKS AoVHJhZGl0aW9uYWwgQ2Fj
...snip...
Hier der Delphi-Code, das vollständige Project lade ich im Anhang mit hoch.
Delphi-Quellcode:
function TdmPOP3.GetMail(ndx:Integer) : boolean;
var j : integer;
    FileName : String;
begin
  Result := false;

  if POP3Mail.Connected then
    try
      IdMsg.Clear;
      IdMsg.NoDecode := False;
// IdMsg.NoDecode := True;
      POP3Mail.Retrieve(ndx, IdMsg);
      form1.AddToLog('<subject>'
               +IdMsg.From.Address+' '
               +IdMsg.Subject+' '
               +DateToStr(IdMsg.Date)+'</subject>');

      for j := 0 to Pred(IdMsg.MessageParts.Count) do
      begin
        if IdMsg.MessageParts.Items[j] is TIdText then
          begin
            Form1.AddToLog('<TIdText>'#13
                  + TIdText(IdMsg.MessageParts.Items[j]).Body.Text+#13
                  + '</TidText>');
            Form1.Memo1.Lines.AddStrings(TIdText(IdMsg.MessageParts.Items[j]).Body);
          end;
        // else
        if IdMsg.MessageParts.Items[j] is TIdAttachment then
          begin
            FileName := TIdAttachment(IdMsg.MessageParts.Items[j]).FileName;
            FileName := CheckFileName(FileName); // Delete Dublicates!
            Form1.AddToLog('Save Attachment to ' + FileName);
            TIdAttachment(IdMsg.MessageParts.Items[j]).SaveToFile(FileName);
          end; // if ... is TIdAttachment
      end; // for j ...

      // Wenn erwünscht Mail nach download vom Server löschen
      if Form1.cbDelOnRead.Checked then Pop3Mail.Delete(ndx);
    except
      Form1.AddToLog('Fehler bei Pop3Mail.Retrieve');
      beep();
      Result := false;
      exit;
    end;
end;
Von der o.g. Mail wird hier z.B. nur das Subject geloggt, bzw auf Form1.Memo1.Lines wird nur eine Leerzeile ausgegeben. Also ich bin jetzt nach 2 langen Tagen Recherche mit meinem Latein am Ende, und fange nun an die Mails per TClientSocket runterzuladen, und weiter zu verarbeiten. Es würde mich aber interessieren, ob ihr noch einen Fehler oder fehlendes Statement entdeckt.
Eine komplette Beispielmail zum Testen, schicke ich gerne bei Bedarf zu.

Ein frohes Osterfest
wünscht
Andreas
Angehängte Dateien
Dateityp: zip d-praxis_idpop3_147.zip (3,7 KB, 12x aufgerufen)
Gruß
Andreas
  Mit Zitat antworten Zitat
 


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 02:03 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