Wenn dies Ihr erster Besuch hier ist,
lesen Sie bitte zuerst die Hilfe - Häufig gestellte Fragen
durch. Sie müssen sich vermutlich registrieren,
bevor Sie Beiträge verfassen können. Klicken Sie oben auf 'Registrieren', um den Registrierungsprozess zu
starten. Sie können auch jetzt schon Beiträge lesen. Suchen Sie sich einfach das Forum aus, das Sie am meisten
interessiert.
falls ein wirklich einen Grund gibt, zur späten Bindung zu wechseln, demonstriert das folgende Beispiel den Weg, um über <b>Outlook 2000</b> eine eMail mit einer angehängten Datei zu verschicken:
<pre>
procedure TFormMain.Button1Click(Sender: TObject);
var
OutlookApp : OleVariant;
OutlookItem : OleVariant;
NameSpace : OleVariant;
sTxt : String;
begin
sTxt := 'Das ist der Text der eMail';
OutlookApp := CreateOleObject('Outlook.Application');
NameSpace := OutlookApp.GetNameSpace('MAPI');
OutlookItem := OutlookApp.CreateItem(0);
OutlookItem.To := '[email protected]';
OutlookItem.Subject := ' Test-eMail mit Anhang';
OutlookItem.Body := sTxt;
OutlookItem.Attachments.Add('C:\Temp\Status.ini');
OutlookItem.Send;
end;
</pre>
Vielen Dank für Ihre Info. Bei einer frühen Bindung, wie könnte hier die Lösung aussehen ( für den Anhang ) - dies wäre Ihr Beispiel aus dem Entwickler.
die Lösung für die frühe Bindung sieht fast genauso aus - da keine optionalen Parameter zur Verfügung stehen, müssen alle Standard-Wert über den Wert <b>EmptyParam</b> gekennzeichnet werden. Delphi hilft dabei mir der Programmierhilfe aus, indem alle erwarteten Parameter angezeigt werden:
<pre>
uses ComObj, Outlook_TLB;
var
dwStart, dwEnd : DWord; // Ausführungszeit stoppen
{ Aufgabe 1: eMail verschicken }
procedure TFormMain.BitBtnMailClick(Sender: TObject);
var
aOutlook : _Application;
aMAPI : NameSpace;
aOutbox : MAPIFolder;
aMail : MailItem;
aReci : Recipient;
begin
StatusBar1.SimpleText := 'eMail wird über Outlook verschickt...';
dwStart := GetTickCount;
Screen.Cursor := crHourglass;
aOutLook := CoOutlookApplication.Create;
try
aMAPI := aOutlook.GetNameSpace('MAPI');
aOutbox := aMAPI.GetDefaultFolder(olFolderOutbox);
aMail := aOutbox.Items.Add(olMailItem) as MailItem;
aReci := aMail.Recipients.Add(EditMailAddress.Text);
aReci.Type_ := olTo;
// Empfänger prüfen (falls nicht bekannt -> Exception)
aReci.Resolve;
aMail.Subject := EditMailSubject.Text;
aMail.Body := MemoMailBody.Text;
aMail.Attachments.Add('C:\Temp\Status.ini', EmptyParam,
EmptyParam, EmptyParam);
// eMail senden
aMail.Send;
finally
aOutlook := nil;
Screen.Cursor := crDefault;
end;
dwEnd := GetTickCount;
StatusBar1.SimpleText := Format('Ausführungszeit: %d Windows-Ticks',
[dwEnd - dwStart]);
end;
</pre>
P.S: Diese Lösung verzichtet auf die neuen Servers-Komponenten von Delphi 5, so dass auch Delphi 4 verwendet werden kann
Comment