![]() |
Mailto mit Anhang senden
Hallo zusammen
Ich möchte, dass mein Programm auf Knopfdruck das Standard-E-Mail-Programm des Users öffnet und da eine neue E-Mail erstellt. Diese soll jedoch noch nicht versendet werden, sondern erst geöffnet werden, damit der User noch die Chance hat den Text anzupassen. Dies erreiche ich auch wunderbar mit folgendem Code
Delphi-Quellcode:
Allerdings möchte ich nun noch eine Datei anhängen. Im Stil von "Rechtsklick auf eine Datei -> Datei senden an -> Emailempfänger" in Windows.
ShellExecute(Application.Handle, 'open', PChar('mailto:' + edbEmail.Text), nil, nil, SW_SHOW);
Könnt ihr mir da weiterhelfen? Vielen Dank Urs |
Re: Mailto mit Anhang senden
Stichwort (Simple)Mapi (z.b. mit Units aus der Jedi).
|
Re: Mailto mit Anhang senden
mit MAPI hab ich schon was gefunden hier auf DP:
![]() nur ist hier das Problem, dass dann Outlook (oder welches Programm auch immer) versucht das Mail im Hintergrund zu versenden und man kann den Text nicht verändern. Oder meinst du was anderes mit MAPI? |
Re: Mailto mit Anhang senden
Zitat:
|
Re: Mailto mit Anhang senden
Also sobald ein Anhang mitgeschickt werden soll, musst Du auf MAPI ausweichen, ansonsten reicht auch ShellExecute.
Sobald Du MAPI verwendest, erstellt bspw. eine bestimmte Funktion eine neue EMail mit den Daten, die Du im Programm eingetragen hast. Versendet wird diese allerdings noch nicht, da der Anwender erst im EMail-Programm auf den Senden-Schalter drücken muss. Schau Dir am besten die JEDI VCL-Beispiele dazu an, dann wird alles etwas klarer ( ![]() |
Re: Mailto mit Anhang senden
oder Du nimmst folgende Unit:
Delphi-Quellcode:
leider unkommentiert, :cry:
unit tdEmail;
interface uses Classes, SysUtils; function SendEMail(const AHost,AUser,APass, AToAdress,ASubject: String; const ABody,AAttachment: TStrings): Integer; implementation uses IdMessage, IdSMTP, idAttachmentFile; function SendEMail(const AHost,AUser,APass, AToAdress,ASubject: String; const ABody,AAttachment: TStrings): Integer; var HMsg: TIdMessage; HSMTP: TIdSMTP; I: Integer; begin Result := 0; { Ok } HSMTP := TIdSMTP.Create(nil); HSMTP.Host := AHost; HSMTP.Username := AUser; HSMTP.Password := APass; HSMTP.Port := 25; HSMTP.AuthType := atDefault; HSMTP.Connect; { Message füllen } HMsg := TIdMessage.Create(nil); HMsg.From.Address := AUser; HMsg.Recipients.EMailAddresses := AToAdress; HMsg.Subject := ASubject; HMsg.Body.Clear; HMsg.Body.Assign(ABody); HMsg.Date := Now; { Anhang } if Assigned(AAttachment) then begin for I := 0 to AAttachment.Count - 1 do TIdAttachmentFile.Create(HMsg.MessageParts,AAttachment[I]); end; try try HSMTP.Send(HMsg); except Result := HSMTP.LastCmdResult.NumericCode; end; finally { frei geben } HMsg.Free; HSMTP.Free; end; end; end. |
Re: Mailto mit Anhang senden
vielen Dank für eure Antworten. Ich werd mal sehen, was ich so hinkriege :)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:02 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 by Thomas Breitkreuz