Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi MAPI Schnittstelle zu Outlook 2016 und höher (https://www.delphipraxis.net/206142-mapi-schnittstelle-zu-outlook-2016-und-hoeher.html)

BerndS 23. Nov 2020 18:03

AW: MAPI Schnittstelle zu Outlook 2016 und höher
 
Eine weiter Möglichkeit wär die Unit C:\Program Files (x86)\CodeGear\RAD Studio\5.0\OCX\Servers\OfficeXP.pas einzubinden und TOutlookApplication zu verwenden.
Ich benutze die Version von 10.4 und Office2016 und die Strg-Leertaste funktioniert hier.

Sinspin 24. Nov 2020 09:10

AW: MAPI Schnittstelle zu Outlook 2016 und höher
 
Zitat:

Zitat von helste (Beitrag 1477795)
Was mir fehlt ist einfach eine Referenz, wo ich die ganzen Variablen finde, die ich abfragen kann.

Strg-Leertaste liefert bei OLEVariant nichts.

Mein Outlookmodul basiert auf diesem Blogpost.
how to send email in delphi

Die MS Hilfe hat dann geholfen um den ganzen rest rauszufinden.

helste 25. Nov 2020 08:40

AW: MAPI Schnittstelle zu Outlook 2016 und höher
 
Zitat:

Zitat von BerndS (Beitrag 1477804)
Eine weiter Möglichkeit wär die Unit C:\Program Files (x86)\CodeGear\RAD Studio\5.0\OCX\Servers\OfficeXP.pas einzubinden und TOutlookApplication zu verwenden.
Ich benutze die Version von 10.4 und Office2016 und die Strg-Leertaste funktioniert hier.

Ich benutze TOutlookApplication schon sehr lange, jedoch über die Unit Outlook2000.
Das funktioniert auch sehr gut und nach meinen Tests der letzten Tage funktioniert das sogar mit Oultook365. Dachte zuerst es würde mit neueren Versionen nicht mehr funktionieren. Diese falsche Annahme war die Ausgangslage für meine Frage hier.

Was mir mit TOutlookApplication noch fehlt ist das Ermitteln der richtigen E-Mailadresse des Absenders, wenn es über Exchange geht.
Da kommt dann für den Absender sowas in der Art /O=EXCHANGELABS/OU=EXCHANGE ADMINISTRATIVE GROUP (FYDIBOHF11SPDLT)/CN=RECIPIENTS/CN=5D7A5C8C23DE4B74B4C8D8D80E510C80-MAILBOX1

Mit den OLEVariants konnte ich das mit

Delphi-Quellcode:
if (email.SenderEmailType = 'EX') then
   begin
   Sender := email.sender;
   if not VarIsNull (sender) then
      begin
      exchUser := sender.GetExchangeUser;
      if not VarIsNull (exchUser) then
         Absender := exchUser.PrimarySmtpAddress;
      end;
   end;
in die korrekte E-Mailadresse umwandeln. Bei TOutlookApplication fehlt mir das. Zumindest habe ich es noch nicht entdeckt.

helste 25. Nov 2020 08:42

AW: MAPI Schnittstelle zu Outlook 2016 und höher
 
Zitat:

Zitat von Sinspin (Beitrag 1477826)

Mein Outlookmodul basiert auf diesem Blogpost.
how to send email in delphi

Die MS Hilfe hat dann geholfen um den ganzen rest rauszufinden.


Ja, die MS Hilfe habe ich jetzt die letzten Tage auch genutzt. Da steht im Prinzip alles drinnen.

Das hat mir sehr geholfen.

helste 27. Nov 2020 11:20

AW: MAPI Schnittstelle zu Outlook 2016 und höher
 
Kurzes feedback.

Dank eurer Hilfe konnte ich nun alles so erledigen, wie ich es mir vorstelle.

Eine kleine Hürde musste ich noch überwinden und für den Fall, dass auch mal jemand in die Problematik kommt, hier eine kurze Erklärung dazu.

Ich habe meine Importfunktion nun so erweitert, dass ich sämtliche Konten, die in Outlook angelegt sind, durch gehe und in die Posteingangsordner aller dieser Konten schaue, ob es da einen Unterordner mit einem bestimmten Namen gibt. Gibt es diesen, dann importiere ich alle Emails die darin enthalten sind.
Als ich das hatte, kam beim Import plötzlich eine Fehlermeldung, dass es in dem OLEObjekt keine Eigenschaft CC und BCC gibt.
Nach mühsamer Testerei bin ich dann dahinter gekommen, dass es bei Mails, die ich aus einem IMAP Konto hole, tatsächlich kein CC und BCC gibt.
Warum das so ist, erschließt sich mir nicht ganz, aber ich habe das pragmatisch gelöst, indem ich nur Mails aus POP3 und Exchange Konten importiere. Alles andere wird ignoriert.

Delphi-Quellcode:
if not VarIsNull (Account) and ((Account.AccountType = 0) or (Account.AccountType =2)) then  // olExchange, olPop3
So funktionert es nun einwandfrei und mit der Einschränkung kann ich leben.

Eventuell hat ja wer einen Hinweis für mich, der erklärt warum es in IMAP Konten bei einem Mail-Objekt kein CC und BCC gibt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:41 Uhr.
Seite 2 von 2     12   

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