![]() | Patrick's Programming Library Version 6.4.21 - Dokumentation |
Klasse zum Lesen und Dekodieren von Emails. Mehr ...
Öffentliche Methoden | |
CReadMail () | |
Konstruktor der Klasse. Mehr ... | |
~CReadMail () | |
Destruktor der Klasse. Mehr ... | |
void | Clear () |
Inhalt der Klasse wird gelöscht. Mehr ... | |
const char * | GetBody () |
Gibt einen Pointer auf den kompletten undekodierten Body zurück. Mehr ... | |
int | GetBody (CString &Buffer) |
Unveränderten Body in einen Puffer kopieren. Mehr ... | |
const char * | GetDecodedBody () |
Pointer auf dekodierten Body zurückgeben. Mehr ... | |
int | GetDecodedBody (CString &Buffer) |
Dekodierten Body in einen Puffer schreiben. Mehr ... | |
const char * | GetHeader (const char *key) |
Gibt den Wert eines Keywortes im Header zurück. Mehr ... | |
const char * | GetHeader () |
Gibt einen Pointer auf den kompletten Header zurück. Mehr ... | |
int | GetHeader (CString &Buffer) |
Kompletten Header in einen Puffer kopieren. Mehr ... | |
int | GetHeader (CString &Buffer, const char *key) |
Kopiert den Wert eines Keywortes im Header in einen Puffer. Mehr ... | |
CAssocArray * | GetHeaderArray (CAssocArray *Buffer=NULL) |
Pointer auf Assoziatives Array mit Header-Zeilen. Mehr ... | |
int | GetHeaderArray (CAssocArray &Buffer) |
Header-Zeilen in ein Assoziatives Array kopieren. Mehr ... | |
const char * | GetMail () |
Pointer auf komplette Mail zurückgeben. Mehr ... | |
int | GetMail (CString &Buffer) |
Komplette Mail in einen Puffer kopieren. Mehr ... | |
const char * | GetTranscodedBody (const char *charset="UTF-8") |
Pointer auf dekodierten Body zurückgeben. Mehr ... | |
int | GetTranscodedBody (CString &Buffer, const char *charset="UTF-8") |
Dekodierten und Transkodierten Body in einen Puffer kopieren. Mehr ... | |
int | LoadFile (const char *filename,...) |
Mail aus Datei laden. Mehr ... | |
int | LoadFile (CFileObject *file) |
Mail aus Datei laden. Mehr ... | |
int | LoadFile (CFileObject &file) |
Mail aus Datei laden. Mehr ... | |
int | LoadString (const char *string) |
Mail aus String laden. Mehr ... | |
int | LoadString (const CString &string) |
Mail aus String laden. Mehr ... | |
Private Methoden | |
int | Decode_Base64 () |
Body im "Base64"-Format dekodieren. Mehr ... | |
int | Decode_QuotedPrintable () |
Body im "Quoted Printable"-Format dekodieren. Mehr ... | |
int | DecodeBody () |
Body der Mail Dekodieren. Mehr ... | |
int | ParseHeader () |
Header der Mail in ein Assoziatives Array parsen. Mehr ... | |
int | RemoveCR () |
Eventuell vorhandene Carriage-Returns (CR) entfernen oder durch Newline (NL) ersetzen. Mehr ... | |
int | SplitHeaderAndBody () |
Mail in Header und Body zerlegen. Mehr ... | |
Private Attribute | |
CString | Body |
String mit dem kompletten unveränderten Body. Mehr ... | |
CString | Decoded |
String mit dem kompletten dekodierten Body. Mehr ... | |
CString | Header |
String mit dem kompletten unveränderten Header. Mehr ... | |
CAssocArray | HeaderLines |
Assoziatives Array mit den einzelnen Keyworten des Headers. Mehr ... | |
bool | Loaded |
Flag was anzeigt, ob eine Mail erfolgreich geladen wurde. Mehr ... | |
CString | |
String mit der kompletten unverarbeiteten Mail. Mehr ... | |
CString | Transcoded |
String mit dem kompletten dekodierten und Transcodierten Body. Mehr ... | |
ppl6::CReadMail::CReadMail | ( | ) |
ppl6::CReadMail::~CReadMail | ( | ) |
void ppl6::CReadMail::Clear | ( | ) |
Diese Funktion wird automatisch vom Destruktor und zu Beginn der Load-Funktion aufgerufen, um den Inhalt der Klasse zu leeren und den allokierten Speicher freizugeben,
|
private |
|
private |
|
private |
const char * ppl6::CReadMail::GetBody | ( | ) |
Gibt einen Pointer auf den kompletten undekodierten Body zurück
int ppl6::CReadMail::GetBody | ( | CString & | Buffer | ) |
Diese Funktion kopiert den unveränderten original Body in den angegebenen Buffer.
[out] | Buffer | Pointer auf einen String, in den der Inhalt des Bodies kopiert werden soll. |
const char * ppl6::CReadMail::GetDecodedBody | ( | ) |
Diese Funktion liefert einen Pointer auf den Dekodierten Body zurück. Das Charset ist dabei noch unverändert und entspricht der in der Mail angegebenen Kodierung.
int ppl6::CReadMail::GetDecodedBody | ( | CString & | Buffer | ) |
Diese Funktion kopiert den dekodierten Body in den angegebenen Buffer. Das Charset ist dabei noch unverändert und entspricht der in der Mail angegebenen Kodierung.
[out] | Buffer | Pointer auf einen String, in den der Inhalt des Bodies kopiert werden soll. |
const char * ppl6::CReadMail::GetHeader | ( | const char * | key | ) |
Diese Funktion prüft, ob es im Header eine zum key
passende Zeile gibt, und gibt dessen Wert zurück.
[in] | key | Pointer auf den Namen der Header-Zeile (z.B. "Subject" oder "From"). |
const char * ppl6::CReadMail::GetHeader | ( | ) |
Gibt einen Pointer auf den kompletten Header zurück
int ppl6::CReadMail::GetHeader | ( | CString & | Buffer | ) |
Diese Funktion kopiert den kompletten Header der Mail in den angegebenen Buffer.
[out] | Buffer | Pointer auf einen String, in den der Inhalt des Headers kopiert werden soll. |
int ppl6::CReadMail::GetHeader | ( | CString & | Buffer, |
const char * | key | ||
) |
Diese Funktion prüft, ob es im Header eine zum key
passende Zeile gibt, und kopiert dessen Wert in den angegebenen Buffer.
[out] | Buffer | Pointer auf einen String, in dem der Wert gespeichert werden soll. |
[in] | key | Pointer auf den Namen der Header-Zeile (z.B. "Subject" oder "From"). |
CAssocArray * ppl6::CReadMail::GetHeaderArray | ( | CAssocArray * | Buffer = NULL | ) |
Diese Funktion gibt einen Pointer auf ein Assoziatives Array zurück, dass die einzelnen Zeilen des Headers enthält.
[out] | Buffer | Ein optionaler Pointer auf ein Assoziatives Array, in das die Headerzeilen kopiert werden sollen. |
Buffer-Parameter
angegeben, wird bei Erfolg ein Pointer auf diesen zurückgegeben. Wurde Buffer
nicht angegeben, wird ein Pointer auf ein internes Array zurückgegeben, dessen Speicher von der CReadMail-Klasse verwaltet wird und von der Anwendung nicht freigegeben werden darf. int ppl6::CReadMail::GetHeaderArray | ( | CAssocArray & | Buffer | ) |
Buffer
kopiert.[out] | Buffer | Referenz auf ein Assoziatives Array, in das die Headerzeilen kopiert werden sollen. |
const char * ppl6::CReadMail::GetMail | ( | ) |
Diese Funktion gibt einen Pointer auf den kompletten unveränderten Inhalt der Mail zurück.
int ppl6::CReadMail::GetMail | ( | CString & | Buffer | ) |
Diese Funktion kopiert die komplette unveränderte Mail in den angegebenen Buffer.
[out] | Buffer | Pointer auf einen String, in den der Inhalt der Mail kopiert werden soll. |
const char * ppl6::CReadMail::GetTranscodedBody | ( | const char * | charset = "UTF-8" | ) |
Diese Funktion liefert einen Pointer auf Body zurück, der dekodiert und in das gewünschte Charset gewandelt wurde.
[in] | charset | Name des gewünschten Charsets. Der Default ist "UTF-8". |
int ppl6::CReadMail::GetTranscodedBody | ( | CString & | Buffer, |
const char * | charset = "UTF-8" |
||
) |
Diese Funktion versucht den Body der Mail in das gewünschte charset
zu transkodieren und kopiert diesen dann in den angegebenen Buffer.
[out] | Buffer | String, in dem das Ergebnis gespeichert werden soll. |
[in] | charset | Name des gewünschten Charsets. Der Default ist "UTF-8". |
int ppl6::CReadMail::LoadFile | ( | const char * | filename, |
... | |||
) |
int ppl6::CReadMail::LoadFile | ( | CFileObject * | file | ) |
int ppl6::CReadMail::LoadFile | ( | CFileObject & | file | ) |
int ppl6::CReadMail::LoadString | ( | const char * | string | ) |
int ppl6::CReadMail::LoadString | ( | const CString & | string | ) |
|
private |
|
private |
|
private |
|
private |
String mit dem kompletten unveränderten Body. Der Inhalt kann über die GetBody-Funktionen ausgelesen werden:
|
private |
String mit dem kompletten dekodierten Body. Eine Mail im Quoted-Printable oder Base64-Format wurde hier bereits in lesbare Zeichen umgewandelt. Der Inhalt kann über die GetDecodedBody-Funktionen ausgelesen werden:
|
private |
String mit dem kompletten unveränderten Header. Der Inhalt kann über die GetHeader-Funktionen ausgelesen werden:
|
private |
Dieses Array beinhaltet die einzelnen Keywörter des Mail-Headers. Dabei ist sichergestellt, dass mehrzeilige Werte zu einer Zeile zusammengefasst sind. Bei Keywörtern, die mehrfach im Header auftauchen (Received-Zeile) werden die einzelnen Vorkommen mit Newline voneinander getrennt.
Das komplette Array kann mit der Funktion CReadMail::GetHeaderArray ausgelesen/kopiert werden, einzelne Elemente mit CReadMail::GetHeader(const char *key)
|
private |
|
private |
String mit der kompletten unverarbeiteten Mail. Der Inhalt kann über die GetMail-Funktionen ausgelesen werden:
|
private |
Dies ist ein Behelfs-String, der nur gefüllt wird, wenn die Funktion CReadMail::GetTranscodedBody(CString *Buffer, const char *charset) ohne Buffer aufgerufen wird. Der Body ist dabei bereits Dekodiert und in das angegebene Charset umgewandelt.