AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi MAPI Schnittstelle zu Outlook 2016 und höher

MAPI Schnittstelle zu Outlook 2016 und höher

Ein Thema von helste · begonnen am 23. Nov 2020 · letzter Beitrag vom 27. Nov 2020
Antwort Antwort
helste

Registriert seit: 16. Jul 2009
72 Beiträge
 
Delphi 10.1 Berlin Professional
 
#1

AW: MAPI Schnittstelle zu Outlook 2016 und höher

  Alt 23. Nov 2020, 13:13
Super. Vielen Dank. Ich probiere es mal aus. Bei mir habe ich Outlook 2007 installiert. Damit geht es schon mal. Ältere Versionen hat von meinen Anwendern keiner mehr. Jetzt muss ich es nur noch auf 2016, 2019 und 365 probieren.

Vielen Dank nochmal.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.355 Beiträge
 
Delphi 12 Athens
 
#2

AW: MAPI Schnittstelle zu Outlook 2016 und höher

  Alt 23. Nov 2020, 13:24
Wir hatten uns nach ewigem Krampf mit der MAPI eine Konsolenanwendung gebastelt.

C# .NET und mit den Mailschnittstellen der Microsoft.Office.Interop.Outlook.dll darin, die zum Office des selben Herstellers gut funktionieren.


In der Anwendung gibt es dann eine Option, wo zwischen MAPI und dieser ConsolenApp gewählt werden kann.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (23. Nov 2020 um 13:53 Uhr)
  Mit Zitat antworten Zitat
Papaschlumpf73

Registriert seit: 3. Mär 2014
Ort: Berlin
461 Beiträge
 
Delphi 12 Athens
 
#3

AW: MAPI Schnittstelle zu Outlook 2016 und höher

  Alt 23. Nov 2020, 13:53
Bei mir hat ein kleiner Eingriff in die Registry geholfen - siehe angefügten Schnipsel. Da ist Microschrott wohl mit 32 und 64 bit durcheinander geraten.
Angehängte Dateien
Dateityp: txt MAPI_WOW6432Registry.reg.txt (742 Bytes, 68x aufgerufen)
  Mit Zitat antworten Zitat
helste

Registriert seit: 16. Jul 2009
72 Beiträge
 
Delphi 10.1 Berlin Professional
 
#4

AW: MAPI Schnittstelle zu Outlook 2016 und höher

  Alt 23. Nov 2020, 16:03
Danke schon mal für die Antworten. Ich bin gerade dabei was auszuprobieren. Funktioniert auch schon teilweise.

Was mir fehlt ist einfach eine Referenz, wo ich die ganzen Variablen finde, die ich abfragen kann.

Strg-Leertaste liefert bei OLEVariant nichts.

Ich habe mir mal was aus Fundstücken im Netz zusammen gebastelt. Ich weiß da wo die ???? sind nicht wie ich zu den entsprechenden Daten komme. Wären auch noch weitere interessand wo replyto, etc.
Wo finde ich eine komplette Aufzählung aller möglichen Daten, die ich aus dem OLEVariant eMail bekomme? Das gleiche interessiert mich auch für die übrigen Variants, wie Inbox und z.B. importfolder.


Bitte fehlende Fehlerbehandlung und Aufräumarbeiten ignorieren. Ist nur quick and dirty, um die Funktionsweise zu testen.

Delphi-Quellcode:

function getEmails(var Subject, Sender, Adress, CC, BB, Body, Attachment : string):boolean;

var
   oleOutlook : OLEVariant;
   oleNameSpace : OLEVariant;
   importfolder : OLEVariant;
   Inbox : OLEVariant;
   eMail : OLEVariant;
   i : integer;
   ok : boolean;

begin
Result := False;
CoInitialize(NIL);
try
   oleOutlook := GetActiveOleObject('Outlook.Application');
except
   oleOutlook := CreateOleObject('Outlook.Application');
   end;
try
   oleNameSpace := oleOutlook.GetNameSpace('MAPI');
   ok := false;
   Inbox := oleNameSpace.GetDefaultFolder(olFolderInbox);
   i := 0;
   while i < Inbox.Folders.Count do
      begin
      if uppercase (Inbox.Folders[i+1].Name) = 'IMPORTthen
         begin
         importfolder := Inbox.Folders[i+1];
         ok := true;
         i := Inbox.Folders.Count;
         end;
      end;
   if ok and (importfolder.Items.Count > 0) then
      begin
      email := importfolder.Items (1);
      Subject := eMail.Subject;
// Sender := eMail.from; ????? Wie kriege ich den Absender
      Adress := eMail.to;
      cc := eMail.cc;
      bb := eMail.bcc;
      body := eMail.body;
// Attachment := eMail.Attachments.text; ????? Wie kriege ich eine Liste der Anhänge
      Result := TRUE;
      email.delete;
      end;
except
   end;
oleOutlook := NULL;
end;
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.355 Beiträge
 
Delphi 12 Athens
 
#5

AW: MAPI Schnittstelle zu Outlook 2016 und höher

  Alt 23. Nov 2020, 16:08
Strg-Leertaste liefert bei OLEVariant nichts.
Das kann auch nicht gehen, da diese Infos erst zur Laufzeit bekannt sind.

Was mir fehlt ist einfach eine Referenz, wo ich die ganzen Variablen finde, die ich abfragen kann.
Beim Hersteller nachsehn?
https://docs.microsoft.com/de-de/off...ok.application
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
helste

Registriert seit: 16. Jul 2009
72 Beiträge
 
Delphi 10.1 Berlin Professional
 
#6

AW: MAPI Schnittstelle zu Outlook 2016 und höher

  Alt 23. Nov 2020, 16:09
Super. Vielen Dank. Das habe ich gesucht. Werde mich da mal durchkämpfen.
  Mit Zitat antworten Zitat
BerndS

Registriert seit: 8. Mär 2006
Ort: Jüterbog
492 Beiträge
 
Delphi 12 Athens
 
#7

AW: MAPI Schnittstelle zu Outlook 2016 und höher

  Alt 23. Nov 2020, 18:03
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.
  Mit Zitat antworten Zitat
Benutzerbild von Sinspin
Sinspin

Registriert seit: 15. Sep 2008
Ort: Dubai
711 Beiträge
 
Delphi 10.3 Rio
 
#8

AW: MAPI Schnittstelle zu Outlook 2016 und höher

  Alt 24. Nov 2020, 09:10
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.
Stefan
Nur die Besten sterben jung
A constant is a constant until it change.
  Mit Zitat antworten Zitat
helste

Registriert seit: 16. Jul 2009
72 Beiträge
 
Delphi 10.1 Berlin Professional
 
#9

AW: MAPI Schnittstelle zu Outlook 2016 und höher

  Alt 25. Nov 2020, 08:42

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.
  Mit Zitat antworten Zitat
helste

Registriert seit: 16. Jul 2009
72 Beiträge
 
Delphi 10.1 Berlin Professional
 
#10

AW: MAPI Schnittstelle zu Outlook 2016 und höher

  Alt 27. Nov 2020, 11:20
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.

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.
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:23 Uhr.
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