Entwickler-Ecke

Internet / Netzwerk - Email mit Anhang öffnen lassen


Hasan - Fr 28.04.06 07:52
Titel: Email mit Anhang öffnen lassen
Morgen Allerseits

Das Forum hat mir bisher in vielen Fragen weitergeholfen, bei etwas komme ich aber nicht weiter.

Ich möchte Delphi das aktuelle Mailprogramm aufrufen lassen und Adresse, Subject sowie einen Anhang übergeben. Das Mail aber selbst nicht vom Programm aus senden, das sollte das Emailprogramm erledigen.

Das hier wäre schon fast perfekt.
----------------------------------
ShellExecute(Application.Handle, 'open', PChar('mailto:irgendwer@irgendwo.dort?subject=Dies und Das&body='), nil, nil, sw_ShowNormal);

Wie kriegt man aber da den Anhang rein?

Das Email soll wie gesagt nicht vom Delphi selbst abgesendet werden, darum wirds glaub auch keine Indy Kommponenten brauchen?
Wär super wenn mir da jemand weiterhelfen kann :-)

Gruss

Hasan


Fighter#1 - Fr 28.04.06 13:00

Hallo,
Ich hab mich mal im Internet umgeschaut.
Ich habe mehrfach für bestimmte Email Programme Lösungen gefunden die Teils funktionieren.
Ich glaube kaum das du eine allgemeine Funktion finden wirst, die bei allen email programmen funkitoniert.
Du solltest vll. Doch die Indys nehmen.
MfG Fighter#1


Hasan - Fr 28.04.06 13:15

Hi Fighter#1

hm, du hast Recht.
Danke dir fürs schauen, alles geht leider auch mit Delphi nicht -_-

Mal gucken was das nächste bessere ist

mfg
Hasan


Ingo.Neumann - Mo 10.07.06 18:57
Titel: Mail mit Anhang öffnen und Ausführen
ich habe mir das recht einfach gemacht.

Ich gebe einen Report über den pfdexport in eine Datei aus

und führe dann folgenden Befehl aus:

smail := 'mailto:' + Emailadresse + '?Subject=' + '...Betrefftextzeile...' + '&attach="' + dateipfad + '"';
ShellExecute(handle, 'open', PChar(smail), nil, nil, SW_Shownormal);



wobei smail vorher als string deklariert wird.
dateipfad ist ebenfalls ein string und nimmt den Dateipfad mit Dateiname komplett auf.

Das Interessante hierbei ist, dass es unter Win2000 und Outlook wunderbar funktioniert,
in xp und outlook für XP habe ich da noch so meine Probleme - vielleicht stimmt die Befehlszeile nicht ganz !


acer - Mo 24.07.06 13:23

Hi,

Ich greife auf outlook über eine OLE Schnittstelle auf die KalenderItems zu.
Ebenso ist dies aber auch für emails möglich. ich liste dir im folgenden einfach
mal den code für den zugriff auf kalenderitems, für den zugriff auf emails
bedarf es nur kleiner änderungen. Außerdem gibt es die OutlookApplcation Komponente, welche du unter der Kategorie Server findest.


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
uses 
 OleServer, OutlookXP,...

procedure outlook_Zugriff();
var
  OutlookApp  : OleVariant;
  OutlookItem : OleVariant;
  NameSpace   : OleVariant;
...
begin
 OutlookApp := CreateOleObject('Outlook.Application');
 NameSpace := OutlookApp.GetNameSpace('MAPI');
 OutlookItem := OutlookApp.CreateItem(olAppointmentItem);
 OutlookItem.Subject := subject;
 OutlookItem.location:= location;
 OutlookItem.Body := description;
 outlookItem.Start := strtodatetime(startdate);
 outlookItem.End := strtodatetime(enddate);
 OutlookItem.save;
end;


gruß, alex