Entwickler-Ecke
Sonstiges (Delphi) - Outlook mit mehreren Anhängen öffnen
Eagle-Data - Di 14.12.04 16:17
Titel: Outlook mit mehreren Anhängen öffnen
Hi, ich will aus meinem Programm raus, Outlook (2003) mit mehreren Dateien als Anhang öffnen.
Leider bekomm ich das nur mit einer Datei hin:
Outlook.exe mit Parameter /a "FILE" starten
Quelltext
1:
| ShellExecute(self.Handle,'open',PChar(pfad),PChar(param),nil,SW_SHOW); |
wobei pfad, der pfad zu outlook.exe und param /a und der Dateiname ist.
Wie kann ich mehrere Dateien hinzufügen? Mit mehreren /a´s gehts nicht.
Danke
neojones - Di 14.12.04 16:27
Mit OLE!
Als MailAction "Display" übergeben, MailTo der Empfänger, MailBody der Body als String mit Umbrüchen via #13.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56:
| procedure MakeAppendMail(MailTo, MailSubject, MailAction, MailBody: String;MailAttach: array of String); var Outlook: OLEVariant; MailItem: Variant; X: Integer; begin try Outlook := GetActiveOleObject('Outlook.Application'); except try Outlook:=CreateOleObject('Outlook.Application'); except ShowMessage('Fehler! Outlook ist weder geöffnet noch konnte es gestartet werden!'); VarClear(Outlook); exit; end; end;
MailItem := Outlook.CreateItem(0); MailItem.Subject := MailSubject; MailItem.To := MailTo;
MailItem.Body := '';
MailItem.Body := MailBody;
MailItem.Display;
If Length(MailAttach) > 0 then begin For X := 0 to Length(MailAttach)-1 do begin If FileExists(MailAttach[X]) = True then begin If FileExists(copy(MailAttach[X],0,length(MailAttach[X])-4) + '_1.pdf') then begin MailItem.Attachments.Add(copy(MailAttach[X],0,length(MailAttach[X])-4) + '_1.pdf'); end else begin MailItem.Attachments.Add(MailAttach[X]); end; end else begin ShowMessage('Die Datei ' + MaiLAttach[X] + ' kann nicht angehängt werden, da sie nicht existiert!'); end; end; end;
If MailAction = 'Display' then begin MailItem.Display; end;
If MailAction = 'Send' then begin MailItem.Send; end;
Outlook := Unassigned; end; |
Etwas dilletantisch geproggt.
Moderiert von
Christian S.: Code- durch Delphi-Tags ersetzt.
Eagle-Data - Di 14.12.04 18:08
Das nützt mir nichts. Ich möchte ja die Mail nicht direkt versenden, sondern das sich Outlook mit der neuen Mail öffnet und ich dann Empfänger und alles andere eintippen kann.
Es muss doch irgendwie gehen das ich mehrere Dateien hinzufüge.
neojones - Di 14.12.04 18:44
Ja, es geht: Les Dir mal durch was ich geschrieben hab!
Mit Display öffnet er die Mail, Body und Empfänger kannst leer lassen dann kann der User das selbst eintragen.
Viele Grüße,
Matthias
Eagle-Data - Mi 15.12.04 10:28
Hmm ok wer lesen kann ist klar im Vorteil :wink:
Nur bekomm ich jetzt eine Zugriffsverletzung wenn ich die Procedure aufrufe:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| var attach:array of string; ... for i:=1 to paramcount do attach[i-1]:=paramstr(i);
MakeAppendMail('','','Display','',attach); |
Wo liegt mein Fehler?
Eagle-Data - Mi 15.12.04 10:39
Titel: Problem gelöst
Ok ich habs.
es fehlte eine entscheidene Zeile:
Delphi-Quelltext
1:
| SetLength(attach,paramcount); |
noctua - So 19.12.04 15:32
Titel: Re: Outlook mit mehreren Anhängen öffnen
Eagle-Data hat folgendes geschrieben: |
Leider bekomm ich das nur mit einer Datei hin:
Outlook.exe mit Parameter /a "FILE" starten
Quelltext 1:
| ShellExecute(self.Handle,'open',PChar(pfad),PChar(param),nil,SW_SHOW); |
wobei pfad, der pfad zu outlook.exe und param /a und der Dateiname ist.
|
ich bekomme es nicht ma mit einer Datei hin ....
Quelltext
1:
| ShellExecute(Application.Handle,'open',PChar('mailto:peter@web.de?subject=Betreff&body=lalalalalala'),PChar('D:\text.txt'),nil,sw_ShowNormal); |
das müsste doch eigentlich gehen oder?
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!