Qrealm.com


Senden HTML-E-Mails mit ICS

Verfahren THtmlMailForm.SendButtonClick (Sender: TObject);
start
wenn FRunning dann beginnen
MessageBeep (MB_OK);
Display ('**** BEREITS MIT ****');
Ausgang;
ende;

FRunning: = TRUE;
versuchen
{Geben Sie der Komponente die verschiedenen Daten, die er braucht}
HtmlSmtpClient.PlainText: = PlainTextMemo.Lines;
HtmlSmtpClient.HtmlText: = HtmlTextMemo.Lines;
HtmlSmtpClient.EmailImages: = ImageFilesMemo.Lines;
HtmlSmtpClient.EmailFiles: = AttachedFilesMemo.Lines;

{Initialisieren Sie alle SMTP-Komponente Eigenschaften unserer GUI}
HtmlSmtpClient.Host: = HostEdit.Text;
HtmlSmtpClient.Port: = PortEdit.Text;
HtmlSmtpClient.SignOn: = SignOnEdit.Text;
HtmlSmtpClient.FromName: = FromEdit.Text;
HtmlSmtpClient.HdrFrom: = FromEdit.Text;
HtmlSmtpClient.HdrTo: = ToEdit.Text;
HtmlSmtpClient.HdrCc: = CcEdit.Text;
HtmlSmtpClient.HdrSubject: = SubjectEdit.Text;
HtmlSmtpClient.AuthType: = smtpAuthNone;

{Empfängerliste von An, Cc und Bcc berechnet}
HtmlSmtpClient.RcptName.Clear;
HtmlSmtpClient.RcptNameAdd (ToEdit.Text, CcEdit.Text, BccEdit.text);
wenn dann PlainTextCheckBox.Checked
HtmlSmtpClient.ContentType: = smtpPlainText
sonst
HtmlSmtpClient.ContentType: = smtpHtml;

Display ('Anschluss an SMTP-Server ...');

{Starten erste Operation zu tun, um eine E-Mail}
{Next Operationen werden von OnRequestDone Veranstaltung begann}
HtmlSmtpClient.Connect;
außer

auf E: Ausnahme do begin
Display (E.ClassName + ":" + E.Message);
FRunning: = false;
ende;
ende;

ende;

{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}

Verfahren THtmlMailForm.HtmlSmtpClientRequestDone (
Sender: TObject;
RqType: TSmtpRequest;
Errorcode: Word);
start
{Für jeden Betrieb, zeigen wir den Status}
if (Errorcode> 0) und (Fehlercode <10000) dann
Display ('RequestDone Rq =' + IntToStr (Ord (RqType)) +
"Fehler = '+ HtmlSmtpClient.ErrorMessage)

sonst
Display ('RequestDone Rq =' + IntToStr (Ord (RqType)) +
"Fehler = '+ IntToStr (Errorcode));

wenn nicht, dann FRunning
Ausgang;

{Starten nächste Operation, aber erst prüfen, ob vorherige war OK}
wenn Fehlercode <> 0 dann beginnen
FRunning: = false; {Beenden Sie All-In-One-Demo}
Display ('Fehler, zu stoppen.');
Ausgang;
ende;

Bei der RqType
smtpConnect: beginnen
wenn HtmlSmtpClient.AuthType = smtpAuthNone dann
HtmlSmtpClient.Helo
sonst
HtmlSmtpClient.Ehlo;
ende;

smtpHelo: HtmlSmtpClient.MailFrom;
smtpEhlo: HtmlSmtpClient.Auth;
SMTPAuth: HtmlSmtpClient.MailFrom;
smtpMailFrom: HtmlSmtpClient.RcptTo;
smtpRcptTo: HtmlSmtpClient.Data;
smtpData: HtmlSmtpClient.Quit;
smtpQuit: beginnen
Display ("Fertig! ');
FRunning: = false;
ende;
ende;
ende;