uses Mapi; Procedure TForm1.SendMail(Subject,Mailtext, FromName,FromAdress, ToName,ToAdress, AttachedFileName, DisplayFileName:string; ShowDialog:boolean); var MapiMessage : TMapiMessage; MError : Cardinal; Empfaenger : Array[0..1] of TMapiRecipDesc; Absender : TMapiRecipDesc; Datei : Array[0..1] of TMapiFileDesc; begin with MapiMessage do begin ulReserved := 0; // Betreff lpszSubject := PChar(Subject); // Body lpszNoteText := PChar(Mailtext); lpszMessageType := nil; lpszDateReceived := nil; lpszConversationID := nil; flFlags := 0; // Absender festlegen Absender.ulReserved:=0; Absender.ulRecipClass:=MAPI_ORIG; Absender.lpszName:= PChar(FromName); Absender.lpszAddress:= PChar(FromAdress); Absender.ulEIDSize:=0; Absender.lpEntryID:=nil; lpOriginator := @Absender; // Empfänger festlegen (Hier: nur 1 Empfänger) nRecipCount := 1; Empfaenger[0].ulReserved:=0; Empfaenger[0].ulRecipClass:=MAPI_TO; Empfaenger[0].lpszName:= PChar(ToName); Empfaenger[0].lpszAddress:= PChar(ToAdress); Empfaenger[0].ulEIDSize:=0; Empfaenger[0].lpEntryID:=nil; lpRecips := @Empfaenger; // Dateien anhängen (Hier: nur 1 Datei) nFileCount := 1; // Name der Datei auf der Festplatte Datei[0].lpszPathName:= PChar(AttachedFilename); // Name, der in der Email angezeigt wird Datei[0].lpszFileName:= PChar(DisplayFilename); Datei[0].ulReserved:=0; Datei[0].flFlags:=0; Datei[0].nPosition:=Cardinal(-1); Datei[0].lpFileType:=nil; lpFiles := @Datei; end; // Senden if ShowDialog then MError := MapiSendMail(0, Application.Handle, MapiMessage, MAPI_DIALOG or MAPI_LOGON_UI, 0) else // Wenn kein Dialogfeld angezeigt werden soll: MError := MapiSendMail(0, Application.Handle, MapiMessage, 0, 0); Case MError of MAPI_E_AMBIGUOUS_RECIPIENT: MessageDlg('Empfänger nicht eindeutig. (Nur möglich, wenn Emailadresse nicht angegeben.)',mterror,[mbok],0); MAPI_E_ATTACHMENT_NOT_FOUND: MessageDlg('Datei zum Anhängen nicht gefunden',mterror,[mbok],0); MAPI_E_ATTACHMENT_OPEN_FAILURE: MessageDlg('Datei zum Anhängen konnte nicht geöffnet werden.',mterror,[mbok],0); MAPI_E_BAD_RECIPTYPE: MessageDlg('Empfängertyp nicht MAPI_TO, MAPI_CC oder MAPI_BCC.',mterror,[mbok],0); MAPI_E_FAILURE: MessageDlg('Unbekannter Fehler.',mterror,[mbok],0); MAPI_E_INSUFFICIENT_MEMORY: MessageDlg('Nicht genug Speicher.',mterror,[mbok],0); MAPI_E_LOGIN_FAILURE: MessageDlg('Benutzerlogin (z.B. bei Outlook) fehlgeschlagen.',mterror,[mbok],0); MAPI_E_TEXT_TOO_LARGE: MessageDlg('Text zu groß.',mterror,[mbok],0); MAPI_E_TOO_MANY_FILES: MessageDlg('Zu viele Dateien zum Anhängen.',mterror,[mbok],0); MAPI_E_TOO_MANY_RECIPIENTS: MessageDlg('Zu viele Empfänger angegeben.',mterror,[mbok],0); MAPI_E_UNKNOWN_RECIPIENT: MessageDlg('Empfänger nicht in Adressbuch gefunden. '+ '(Nur möglich, wenn Emailadresse nicht angegeben.)',mterror,[mbok],0); MAPI_E_USER_ABORT: MessageDlg('Benutzer hat Senden abgebrochen oder MAPI nicht installiert.',mterror,[mbok],0); SUCCESS_SUCCESS: MessageDlg('Erfolgreich !!! (Aber Absenden nicht garantiert.)',mtinformation,[mbok],0); End; end; {Christian "NineBerry" Schwarz} Aufrufparameter: Subject: Die Betreffzeile Mailtext: Der eigentliche Text der eMail FromName: Der Name des Absenders FromAdress: Die EMail-Adresse des Absenders ToName: Der Name des Empfängers ToAdress: Die EMail-Adresse des Empfängers AttachedFileName: Der Dateiname der angehängten Datei FileDisplayName: Der in der Mail angezeigte Name der angehängten Datei ShowDialog: true: Die Mail wird vor dem Absenden angezeigt false: Die Mail wird "stumm" verschickt