Announcement

Collapse
No announcement yet.

Attachments mit Outlook 2000 von Delphi versenden

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Attachments mit Outlook 2000 von Delphi versenden

    Wie kann ein Attachment mit später Bindung von Delphi nach Outlook 2000 übergeben werden.
    Mit dem Bespiel von Adreas Kosch Outlook2000

  • #2
    Hallo,

    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&gt

    Comment


    • #3
      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.

      Vielen Dank für Ihre Bemühunge

      Comment


      • #4
        Hallo,

        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


        • #5
          Vielen Dank für die Inforamtion und schnelle Beantwortung meiner Fragen.

          Herbert Drexe

          Comment

          Working...
          X