Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi E-Mail Attachment (Base64 En-/Dekodieren) (https://www.delphipraxis.net/105517-e-mail-attachment-base64-en-dekodieren.html)

DelphiPeter 23. Dez 2007 14:05


E-Mail Attachment (Base64 En-/Dekodieren)
 
Hallo! Ich lese Email Nachrichten aus, und möchte die Anhänge abspeichern. Da steht nun Base64 Encoding. Wie funktioniert denn das, die Daten habe ich ja vorerst nur als String, wie mache ich das mit dem Base64 ? Kann mir das jemand mal erklären bitte?

Gibts theoretisch auch noch eine andere Codierung für Anhänge in Emails?

Danke!!!

DelphiPeter

Christian Seehase 23. Dez 2007 14:06

Re: E-Mail Attachment (Base64 En-/Dekodieren)
 
Moin Peter,

erst einmal herzlich willkommen hier in der Delphi-PRAXiS.

Wie liest Du denn die Mails aus?

DelphiPeter 23. Dez 2007 14:17

Re: E-Mail Attachment (Base64 En-/Dekodieren)
 
Hi Christian,

danke für das herzliche Willkommen!

Die Emails liegen mir als *.dat Dateien vor. Diese lese ich in einen String und bearbeite diesen wiederum mit pos, length und copy aus.

Als Beispiel für ein Attachment bekomme ich diesen Base64 Code

Content-ID: <image6>
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Disposition: inline; filename="310x226.jpg"

/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAARgAA/+IMWElDQ19QUk9GSUxF
AAEBAAAMSExpbm8CEAAAbW50clJHQiBYWVogB84AAgAJAAYAMQ AAYWNzcE1TRlQAAAAASUVD
...
qy/LEmBNE1dhq4/ztBd140XenGY/eHknvYH7fMHW3sA/Jih0F4R/qn+CFW9wKTmwNZW/bEPq
FgId8EfYNCfkVGrXA9+oGL+ImcrL98eJvMd3iO9NzlZ3V3WA3R 27Sz2gKvh5o/XX1r4vAM6K
9M+s9a+LwDOitaz69dHbLLkXVYq+79B0E0ns95u+z2+o/QYx1NU3mr+9xj1bv8v/2Q==


Die Frage ist nun, wie ich daraus jetzt eine Datei bekomme?

[edit=Phoenix]Code gekürzt. Wenns sein muss, bitte Anhängen. Mfg, Phoenix[/edit]

Christian Seehase 23. Dez 2007 14:33

Re: E-Mail Attachment (Base64 En-/Dekodieren)
 
Moin Peter,

vielleicht hilft Dir ja dieser Artikel schon weiter.

himitsu 23. Dez 2007 14:57

Re: E-Mail Attachment (Base64 En-/Dekodieren)
 
da oben hätten ein paar auslassungspünktchen ...
und/oder die Zitattägs nicht schaden können.

Nja, du mußt nur den Base64/MIME-String extrahieren und in Binärdaten umwandeln lassen.
also "/9j/4AAQS ... 3mr+9xj1bv8v/2Q==" (und eventuell vorher die Zeilenwechsel entfernen, je nach Dekodierungsverfahren)

dafür gibt's auch fertige Funktionen/Klassen

z.B. in den INDYs (sind oftmals in Delphi schon enthalten) > Unit IdCoderMIME > TIdDecoderMIME und TIdEncoderMIME
und das JCL kent dafür auch Einiges.

OG Karotte 23. Dez 2007 15:17

Re: E-Mail Attachment (Base64 En-/Dekodieren)
 
Oder Du guckst mal hier bzw. hier (EncodeBase64 bzw. DecodeBase64).

DelphiPeter 23. Dez 2007 17:41

Re: E-Mail Attachment (Base64 En-/Dekodieren)
 
Wie benutze ich denn diese Indy Komponenten?

himitsu 23. Dez 2007 17:53

Re: E-Mail Attachment (Base64 En-/Dekodieren)
 
Unit einbinden, Klasse initialisieren, verwenden und freigeben :?:

BUG 23. Dez 2007 17:55

Re: E-Mail Attachment (Base64 En-/Dekodieren)
 
Hallo DelphiPeter,

in der CodeLib gibt es auch Base64-Funktionen: Link

MfG,
Bug


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:23 Uhr.

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