PPL6-Icon Patrick's Programming Library Version 6.4.21 - Dokumentation
ppl6::CSendMail Klassenreferenz

Klasse zum Verschicken von Emails. Mehr ...

Öffentliche Methoden

 CSendMail ()
 Konstruktor der Klasse. Mehr ...
 
 ~CSendMail ()
 Destruktor der Klasse. Mehr ...
 
void Clear ()
 Mail löschen. Mehr ...
 
int CopyHeader (CAssocArray &header)
 Header aus einem Array kopieren. Mehr ...
 
int DeleteHeader (const char *name)
 Wert im Header löschen. Mehr ...
 
const char * GetMail ()
 Komplette Mail. Mehr ...
 
int Send ()
 Email versenden. Mehr ...
 
int SetHeader (const char *name, const char *content,...)
 Werte im Header setzen. Mehr ...
 
int SetLocalHostname (const char *name)
 Lokalen Rechnernamen definieren. Mehr ...
 
int SetMessage (const char *message)
 Nachricht übergeben. Mehr ...
 
int SetMessage (CString &message)
 Nachricht übergeben. Mehr ...
 
int SetSender (const char *name)
 Absender definieren. Mehr ...
 
int SetServer (const char *hostport)
 SMTP-Server angeben. Mehr ...
 

Öffentliche Attribute

CString Message
 String-Variable für den Body der Mail. Mehr ...
 

Private Methoden

int ParseAnswer (CString &Answer, CString &Text)
 Antwort des SMTP-Servers in seine Bestandteile zerlegen. Mehr ...
 
int Talk (CTCPSocket &socket, CString &Reply, CString &Msg)
 Kommunikation mit dem SMTP-Server. Mehr ...
 
int Talk (CTCPSocket &socket, CString &Reply, const char *msg,...)
 Kommunikation mit dem SMTP-Server. Mehr ...
 

Private Attribute

CString CompleteMail
 
CAssocArray Header
 
CString MyHostname
 
CString Sender
 
CString SMTPServer
 

Ausführliche Beschreibung

Include:
#include <ppl6.h>
Beschreibung:
Mit dieser Klasse können einfache Emails ohne Attachement per SMTP an einen beliebigen Mailserver zugestellt werden.
Beispiel:
Beispiel zur Verwendung der Klasse:
int main(int argc, char **argv)
{
Mail.SetHeader("To","patrick@pfp.de");
Mail.SetHeader("To","irgendwer@example.com");
Mail.SetHeader("Cc","nochjemand@pfp.de");
Mail.SetHeader("From","patrick@pfp.de");
Mail.SetHeader("Subject","Testmail %s",(char*)d);
Mail.Message.Set("Dies ist eine Testmail");
Mail.SetServer("mail.pfp.de:smtp");
if (!Mail.Send()) {
return 0;
}
printf ("ok\n");
return 0;
}
Seit
Diese Klasse wurde mit Version 6.0.18 eingeführt

Beschreibung der Konstruktoren und Destruktoren

ppl6::CSendMail::CSendMail ( )
Include:
#include <ppl6.h>
Beschreibung:

Der Konstruktor initialisiert gegenwärtig nur zwei private Variablen:

  • SMTPServer wird mit dem String "localhost:smtp" initialisiert. Der Wert kann mit derFunktion SetServer überschrieben werden.
  • MyHostname wird mit dem Wert der Environment-Variablen "HOSTNAME" initialisiert. Dieser Wert kann mit der Funktion SetLocalHostName überschrieben werden.
ppl6::CSendMail::~CSendMail ( )
Include:
#include <ppl6.h>
Beschreibung:
Gegenwärtig gibt es keine Daten, die deinitialisiert werden müßten, daher führt der Destruktor keine Aktionen aus.

Dokumentation der Elementfunktionen

void ppl6::CSendMail::Clear ( )
Include:
#include <ppl6.h>
Beschreibung:
Diese Funktion löscht Header und Body der letzten Mail
int ppl6::CSendMail::CopyHeader ( CAssocArray header)

Diese Funktion kopiert alle Werte aus dem angegebenen Array in den Header der Mail.

Parameter
headerEin Assoziatives Array mit den Header-Werten
Rückgabe
Die Funktion liefert im Erfolgsfall true (1) zurück, bei einem Fehler false (0).
int ppl6::CSendMail::DeleteHeader ( const char *  name)
Include:
#include <ppl6.h>
Beschreibung:
Mit dieser Funktion kann eine Variable innerhalb des Headers gelöscht werden.
Parameter
nameDer Name der Header-Variablen
Rückgabe
Die Funktion liefert true (1) zurück, wenn die Variable gesetzt werden konnte, im Fehlerfall wird ein enstrechender Fehlercode gesetzt und die Funktion gibt false (0) zurück.
const char * ppl6::CSendMail::GetMail ( )

Diese Funktion gibt einen Pointer auf die komplette Mail, also Header und Body, zurück.

Rückgabe
Pointer auf Mailinhalt
int ppl6::CSendMail::ParseAnswer ( CString Answer,
CString Text 
)
private
Include:
#include <ppl6.h>
Beschreibung:
Dies ist eine interne Funktion, die von außen nicht benutzt werden kann. Sie wird verwendet, um die Antwort des SMTP-Servers in die Bestandteile "ReturnCode" und "Text" zu zerlegen.
Parameter
AnswerEnthält die Antwort des Servers
Textin dieser Variablen wird der Text-Bestandteil der Antwort abgelegt
Rückgabe
Die Funktion liefert den Return-Code des SMTP-Servers zurück
int ppl6::CSendMail::Send ( )
Include:
#include <ppl6.h>
Beschreibung:
Mit dieser Funktion wird die Email an den SMTP-Server zugestellt.
Rückgabe
Konnte die Mail erfolgreich versendet werden, liefert die Funktion true (1) zurück, im Fehlerfall wird ein entsprechender Fehlercode gesetzt und die Funktion liefert false (0) zurück.
int ppl6::CSendMail::SetHeader ( const char *  name,
const char *  content,
  ... 
)
Include:
#include <ppl6.h>
Beschreibung:
Mit dieser Funktion können alle Variablen innerhalb des Headers gesetzt werden.
Parameter
nameName der Header-Variablen Beispiel:
  • Subject Das Subject der Mail
  • To Der Empfänger der Mail. Um mehrere Empfänger zu definieren, muss SetHeader mehrfach aufgerufen werden.
  • Cc Empfänger für Kopien
  • Bcc Empfänger für blinde Kopien
  • Date
  • From
contentEin Formatstring mit dem Wert der Variablen
...Optionale Parameter
Rückgabe
Die Funktion liefert true (1) zurück, wenn die Variable gesetzt werden konnte, im Fehlerfall wird ein enstrechender Fehlercode gesetzt und die Funktion gibt false (0) zurück.
Bemerkungen
Wird die Funktion mit einem Variablen-Namen aufgerufen, der zuvor schonmal gesetzt wurde, wird diese nicht überschrieben, sondern erweitert. In der Mail würde diese Zeile dann mehrfach auftauchen. Um eine Variable aus dem Header zu löschen, kann die Funktion DeleteHeader aufgerufen werden.
int ppl6::CSendMail::SetLocalHostname ( const char *  name)
Include:
#include <ppl6.h>
Beschreibung:
Mit dieser Funktion wird der lokale Rechnername festgelegt, der während der Kommunikation mit dem Mailserver im "HELO"-Kommando übergeben wird. Wird diese Funktion nicht aufgerufen, wird defaultmäßig der Hostname des lokalen Servers benutzt.
Parameter
nameDer Name des Rechners
Rückgabe
Die Funktion führt keine Prüfung des übergebenen Hostnamens zurück. Sie liefert daher immer true (1) zurück, sofern ein Name angegeben wurde. Zeigt name auf NULL oder einen leeren String, liefert die Funktion false (0) zurück und setzt einen Fehlercode. und liefert daher immer true (1) zurück.
int ppl6::CSendMail::SetMessage ( const char *  message)
Include:
#include <ppl6.h>
Beschreibung:
Mit dieser Funktion wird die zu sendende Nachricht übergeben. Die Funktion existiert mehrfach und unterscheidet sich nur durch den Datentyp des übergebenen Parameters.
Parameter
messageDer Inhalt der Email, der mit folgenden Datentypen übergeben werden kann:
Rückgabe
Die Funktion führt keine Prüfung des übergebenen Wertes zurück und liefert daher immer true (1) zurück.
int ppl6::CSendMail::SetMessage ( CString message)
Include:
#include <ppl6.h>
Beschreibung:
Mit dieser Funktion wird die zu sendende Nachricht übergeben. Die Funktion existiert mehrfach und unterscheidet sich nur durch den Datentyp des übergebenen Parameters.
Parameter
messageDer Inhalt der Email, der mit folgenden Datentypen übergeben werden kann:
Rückgabe
Die Funktion führt keine Prüfung des übergebenen Wertes zurück und liefert daher immer true (1) zurück.
int ppl6::CSendMail::SetSender ( const char *  name)
Include:
#include <ppl6.h>
Beschreibung:
Mit dieser Funktion wird der Absender der Email definiert. Diese wird während der Kommunikation mit dem Mailserver im "MAIL"-Kommando übergeben und darf nur eine Emailadresse enthalten. Wird diese Funktion nicht aufgerufen, wird defaultmäßig der Wert aus der "From"-Variablen im Header verwendet.
Parameter
nameDie Emailadresse des Absenders
Rückgabe
Die Funktion führt keine Prüfung des übergebenen Wertes zurück und liefert daher immer true (1) zurück.
Zu beachten
Falls der String einen Namen und Emailadresse in spitzen Klammern enthält (z.B. "Mein Name <ich@domain.de>"), wird nur der Inhalt der spitzen Klammern verwendet (ab 6.0.23).
int ppl6::CSendMail::SetServer ( const char *  hostport)
Include:
#include <ppl6.h>
Beschreibung:
Mit dieser Funktion wird der SMTP-Server festgelegt, an den die Mail übergeben werden soll. Wird diese Funktion nicht aufgerufen, wird defaultmäßig versucht auf den lokalen SMTP-Port zu connecten (localhost:25).
Parameter
hostportHostname:Port des SMTP-Servers. Statt Hostname kann auch die IP angegeben werden und statt einer Portnummer der Servicename. Beispiel: mail.pfp.de:smtp
Rückgabe
Die Funktion führt keine Prüfung des übergebenen Hostnamens zurück und liefert daher immer true (1) zurück.
int ppl6::CSendMail::Talk ( CTCPSocket socket,
CString Reply,
CString Msg 
)
private
Include:
#include <ppl6.h>
Beschreibung:
Mit dieser internen Funktion wird eine Nachricht an den SMTP-Server geschickt und dessen Antwort gelesen
Parameter
[in]socketPointer auf die Socket-Klasse, die die Verbindung zum SMTP-Server enthält
[in]ReplyEin String, in dem die Antwort des Servers gespeichert wird
[in]MsgDie Nachricht, die an den SMTP-Server geschickt werden soll
Rückgabe
Die Funktion liefert im Fehlerfall 0 zurück, sonst den Return-Code des SMTP-Servers (siehe ParseAnswer).
int ppl6::CSendMail::Talk ( CTCPSocket socket,
CString Reply,
const char *  msg,
  ... 
)
private
Include:
#include <ppl6.h>
Beschreibung:
Mit dieser internen Funktion wird eine Nachricht an den SMTP-Server geschickt und dessen Antwort gelesen
Parameter
[in]socketPointer auf die Socket-Klasse, die die Verbindung zum SMTP-Server enthält
[in]ReplyEin String, in dem die Antwort des Servers gespeichert wird
[in]msgEin Formatstring, der die Nachricht an den SMTP-Server enthält
[in]...Beliebig viele optionale Parameter, die im Formatstring verwendet werden
Rückgabe
Die Funktion liefert im Fehlerfall 0 zurück, sonst den Return-Code des SMTP-Servers (siehe ParseAnswer).

Dokumentation der Datenelemente

CString ppl6::CSendMail::CompleteMail
private
CAssocArray ppl6::CSendMail::Header
private
ppl6::CSendMail::Message

Diese Variable enthält den Body der Mail. Sie kann entweder direkt beschrieben werden oder mittels folgender Funktionen:

CString ppl6::CSendMail::MyHostname
private
CString ppl6::CSendMail::Sender
private
CString ppl6::CSendMail::SMTPServer
private

Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Dateien: