Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi SendTo (Mail mit Attachment) simulieren (https://www.delphipraxis.net/132588-sendto-mail-mit-attachment-simulieren.html)

mjustin 15. Apr 2009 17:11


SendTo (Mail mit Attachment) simulieren
 
Hallo,

für diese Aufgabenstellung

* eine bestehende Datei soll an das in MAPI registrierte Standard-E-Mailprogramm übergeben werden, so dass sich der Mailclient öffnet und die Datei als Anhang enthält (so als hätte man die Datei mit der Kontextmenüfunktion 'Senden an - E-Mail Empfänger' an das Mailprogramm übergeben)

habe ich für C++ diesen Sourcecode gefunden:

http://www.codeproject.com/KB/shell/sendtomail.aspx

Hat eventuell jemand eine Delphi Version dieser Lösung gesichtet?

Cheers

TurboMartin 15. Apr 2009 17:40

Re: SendTo (Mail mit Attachment) simulieren
 
%USERFILES%\AppData\Roaming\Microsoft\Windows\Send To ;)

Das kannst Du mit SHGetSpecialFolder oder ähnliches finden. Darin findest Du dann entsprechende verknüpfungen.

Solltest Du (bei mir unter Vista ist es so) eine Datei Mail Recipient.MAPIMail finden, mit dem Inhalt Mail, so ist es der Standard-eMail-Client.

Nachteule 15. Apr 2009 17:48

Re: SendTo (Mail mit Attachment) simulieren
 
Delphi-Quellcode:
  Shellexecute(Handle,'open','mailto:aaaa@bbb.com?subject&body=body
  text&CC=aaaa&bcc=dddd&attach=FileName',nil,nil,SW_SHOW)
oder hier
http://www.swissdelphicenter.ch/de/showcode.php?id=111

mjustin 15. Apr 2009 17:52

Re: SendTo (Mail mit Attachment) simulieren
 
Zitat:

Zitat von Nachteule
Delphi-Quellcode:
  Shellexecute(Handle,'open','mailto:aaaa@bbb.com?subject&body=body
  text&CC=aaaa&bcc=dddd&attach=FileName',nil,nil,SW_SHOW)

Das unterstützt afaik keine Attachments (vielleicht bei älteren Windows Versionen). Oder hat MS das wieder freigeschaltet?

mjustin 15. Apr 2009 17:53

Re: SendTo (Mail mit Attachment) simulieren
 
Zitat:

Zitat von TurboMartin
%USERFILES%\AppData\Roaming\Microsoft\Windows\Send To ;)

Das kannst Du mit SHGetSpecialFolder oder ähnliches finden. Darin findest Du dann entsprechende verknüpfungen.

Solltest Du (bei mir unter Vista ist es so) eine Datei Mail Recipient.MAPIMail finden, mit dem Inhalt Mail, so ist es der Standard-eMail-Client.

Ok, und was mache ich dann mit der Datei? In dem von mir verlinkten C++ war genau diese Datei ja der Ausgangspunkt für die Lösung - nur ist mir noch keine Delphi-Implementierung begegnet ...

Cheers,

Nachteule 15. Apr 2009 17:54

Re: SendTo (Mail mit Attachment) simulieren
 
Delphi-Quellcode:
uses
  ShellApi;


procedure TForm1.Button1Click(Sender: TObject);
var
  strEmail, strSubject, strBody, Param: string;
begin
  strEmail := 'user@host.com';
  strSubject := 'Your Subject';
  strBody := 'Your Message Text';

  Param := 'mailto:' + strEmail + '?subject=' + strSubject +
           '&Body=' + strBody;

  ShellExecute(Form1.Handle, 'open', PChar(Param), nil, nil, SW_SHOWNORMAL);
end;

{
 Note: Shellexecute doesn't accept Attachments.
 Use MAPI to send Attachments.

 Use %0D%0A for a line break

 Bemerkung: Shellexecute akzeptiert keine Attachment-Angaben.
 MAPI unterstützt Attachments.

 Setze ein %0D%0A ein, um einen Zeilenumruch im Body zu erzwingen
}

mjustin 15. Apr 2009 17:58

Re: SendTo (Mail mit Attachment) simulieren
 
Zitat:

Zitat von Nachteule

{
Note: Shellexecute doesn't accept Attachments.
Use MAPI to send Attachments.

}

MAPI ist auch keine Lösung: zwar kann man damit eine Mail versenden, aber nicht dafür sorgen, dass nur der Mail Client geöffnet wird (mit der gewünschten Datei als Attachment), damit der Anwender vor dem Versand noch den Text eingeben und die Empfänger auswählen kann.

Cheers,


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:18 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz