Send Mapi Email Attachments
Zuletzt geändert: 12.06.2023 06:07

SendMapiEmailAttachments (Pascal-Script) #

Beschreibung #

SendMapiEmailAttachments sendet eine eMail mit Dateianhängen über das MAPI-Protokoll ohne Dialog.

Syntax #

function SendMapiEMailAttachments(const eMail, Subject, Body, Attachments: String; var ResultMsg:String): boolean;

Argumente #

eMail enthält die Empfänger eMail-Adresse, subject den Inhalt der Betreffteile und Body den mehrzeiligen Text der eMail. Sollen Attachments ebenfalls mitversendet werden, so kann eine Liste der Dateien mit dem String „Attachments“ angegeben werden Die Funktion liefert bei Erfolg true. Konnte die eMail nicht versendet werden, so wird false geliefert und in ResultMsg steht der Fehlergrund.

Es wird die aktuelle MAPI-Sitzung benutzt. der Versand erfolgt ohne Dialog mit dem benutzten eMail-System. Ist keine MAPI-Sitzung geöffnet, so wird das MAPI-eMail-System gestartet.

Beispiel #

var
  Langtext : TStrings;
  Attachments : TStrings;
  ResultMsg : String;
begin
  Attachments:=TStringList.Create;
  Attachments.Add('C:\AUTOEXEC.BAT');
  Attachments.Add('C:\CONFIG.SYS');
  Langtext:=TStringList.Create;
  Langtext.Add('Dies ist eine mehrzeilige');
  Langtext.Add('Mitteilung mit mehr als');
  Langtext.Add('Zeilen Text');
  if not SendMapiEMailAttachments('info@cnsoft.de',
         'Scriptbeispiel',Langtext.text,
         Attachments.text, ResultMsg) then
    ShowMessage('Email konnte aus folgendem '+
                'Grund nicht versendet werden: '+ResultMsg);
  Langtext.Free;
  Attachments.Free;
end;

Der Langtextcontainer wird über TStringList.Create erzeugt und mit den Methoden Add werden dem Langtext-Container Textzeilen zugewiesen. Auf gleiche Weise werden die Dateinamen in den Container „Attachments“ hinzugefügt.

Der Befehl SendMapiEMailAttachments versendet die eMail und liefert bei Erfolg true. Kann die eMail nicht versendet werden, so wird der Grund über ShowMessage ausgegeben.

Beachten Sie, dass die Container am Ende wieder mit Langtext.Free und Attachment.Free freigegeben werden müssen.