![]() |
Datei per E-Mail versenden
Hi,
heute präsentiere ich euch eine Funktion, mit der sich einzelne Dateien per E-Mail versenden lassen. Das ganze über das Standard Mailkonto des Standardmailprogramms. Verwendete Units: Die Unit MAPI muss eingebunden werden. Paramert FileName Name und Pfad der Datei, die per E-Mail versendet werden soll Subject Betreff BodyText Text der Nachricht RecipAdress E-Mail Adresse des Empfängers Rückgabewerte Wenn kein Fehler aufgetreten ist, gibt SendFileMail() eine leeren String zurück. Ist ein Fehler aufgetreten, wird eine Fehlermeldung als String zurückgegeben. Dummerweise lässt sich nicht immer feststellen, ob ein Fehler aufgetreten ist, da die verwendete MAPI Funktion MapiSendMail() nicht immer bei einem Fehler auch den richtigen Rückgabewert zurückgibt. Es kann also auch ein leerer String zurückgegeben werden, wenn zum Beispiel das Versenden der E-Mail vom Benutzer abgebrochen wurde oder keine Verbindung hergestellt werden konnte. (Bedanken wir uns bei Microsoft). Beispiel: Nach Aufruf der Funktion SendFileMail() wird die E-Mail sofort mit dem Standardmailprogramm über das Standard E-Mailkonto versendet.
Delphi-Quellcode:
Quellcode:
…
var S: String; … S := SendFileMail('C:\Eigene Dateien\_Test\Neu.txt', 'Betreff', 'Meine Nachricht', 'Empfängername', 'Konto@Anbieter.de'); if Length(S) > 0 then begin Beep; MessageDlg('Die Datei konnte nicht per E-Mail versendet werden!' + #10#13#10#13 + 'Meldung:' + #10#13 + S, mtError, [mbOK], 0); end; …
Delphi-Quellcode:
[edit=Matze]Code formatiert. Mfg, Matze[/edit]
function SendFileMail(const FileName: TFileName; const Subject, BodyText, RecipName, RecipAdress: String): String;
var mMessage: TMapiMessage; mlpFiles: TMapiFileDesc; mRecips: TMapiRecipDesc; begin if not FileExists(FileName) then begin Result := 'File "' + FileName + '" not found!'; Exit; end; with mRecips do begin ulRecipClass := MAPI_TO; lpszName := PChar(RecipName); lpszAddress := StrNew(PChar('SMTP:' + RecipAdress)); ulEIDSize := 0; lpEntryID := nil; end; with mlpFiles do begin flFlags := 0; nPosition := 0; lpszPathName := PChar(FileName); lpszFileName := nil; lpFileType := nil; end; with mMessage do begin lpszSubject := PChar(Subject); lpszNoteText := PChar(BodyText); lpszMessageType := nil; lpszDateReceived := nil; lpszConversationID := nil; flFlags := 0; lpOriginator := nil; nRecipCount := 1; lpRecips := @mRecips; nFileCount := 1; lpFiles := @mlpFiles; end; case MapiSendMail(0, 0, mMessage, MAPI_LOGON_UI or MAPI_NEW_SESSION, 0) of MAPI_E_AMBIGUOUS_RECIPIENT: Result := 'A recipient matched more than one of the recipient descriptor structures and MAPI_DIALOG was not set!'; MAPI_E_ATTACHMENT_NOT_FOUND: Result := 'The specified attachment was not found!'; MAPI_E_ATTACHMENT_OPEN_FAILURE: Result := 'The specified attachment could not be open!'; MAPI_E_BAD_RECIPTYPE: Result := 'The type of a recipient was not MAPI_TO, MAPI_CC, or MAPI_BCC!'; MAPI_E_FAILURE: Result := 'One or more unspecified errors occurred!'; MAPI_E_INSUFFICIENT_MEMORY: Result := 'There was insufficient memory to proceed!'; MAPI_E_LOGIN_FAILURE: Result := 'There was no default logon, and the user failed to log on successfully when the logon dialog box was displayed!'; MAPI_E_TEXT_TOO_LARGE: Result := 'The text in the message was too large to sent!'; MAPI_E_TOO_MANY_FILES: Result := 'There were too many file attachments!'; MAPI_E_TOO_MANY_RECIPIENTS: Result := 'There were too many recipients!'; MAPI_E_UNKNOWN_RECIPIENT: Result := 'A recipient did not appear in the address list!'; MAPI_E_USER_ABORT: Result := 'The user canceled one of the dialog boxes!'; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:21 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