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
Thema durchsuchen
Ansicht
Themen-Optionen

MAPI Schnittstelle zu Outlook 2016 und höher

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

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

MAPI Schnittstelle zu Outlook 2016 und höher

  Alt 23. Nov 2020, 10:46
Delphi-Version: 2007
Hallo,

ich habe Probleme mit einer Verbindung zu Outlook 2016 und höher. Soll angeblich daran liegen, dass Outlook2016 nur noch MAPI/http aber nicht mehr MAPI/RPC unterstützt.
Leider konnte ich keine Dokumentation finden, mit der ich weiter kommen.
Ich brauche eine Möglichkeit Mails über Outlook zu senden und eine Möglichkeit Mails aus einem bestimmten Ordern von Outlook zu übernehmen.

Unten ein Beispiel, wie ich aktuell auf Outlook zugreife um Mails aus einem bestimmten Ordner abzuholen. Das funktioniert bisher wie es soll, aber ab Outlook 2016 nicht mehr.

Was gibt es für Alternativen, bzw. wie kann ich das gleiche für neuere Outlookversionen erreichen? Wäre super, wenn mir jemand weiter helfen könnte.
Ich verwende Delphi 2007 und Delphi XE 10.1 Berlin.

Delphi-Quellcode:
uses
   ......,
   Outlook2000;

procedure mailimport;

var
   inboxfolder,
   importfolder : mapifolder;
   Outlook : TOutlookapplication;
   items : _items;

begin
.....

Outlook := TOutlookapplication.create (self);
if assigned (Outlook) then
   begin
   try
      inboxfolder := outlook.getNamespace ('MAPI').GetDefaultFolder (olfolderinbox);
      if assigned (inboxfolder) then
         begin
         i := 1;
         while (i <= inboxfolder.Folders.Count) and not assigned (importfolder) do
            begin
            if uppercase (inboxfolder.Folders.Item(i).Name) = 'IMPORTthen
               importfolder := inboxfolder.Folders.Item(i)
            else
               inc (i);
            end;
         if assigned (importfolder) then
            begin
            items := importfolder.Get_Items;
            i := items.Count;
            while i > 0 do
               begin
               if items.item(i).QueryInterface(_mailitem, opmi) = s_ok then
                  begin
                  mi := items.item(i) as mailitem;

                  mi.Subject,
                  mi.Body, etc. in Datenbank speichern

                  mi.Delete;
                  mi := nil;
                  if items.count < i then
                     i := items.Count;
                  end;
               dec (i);
               end;
            end;
         end;
   except
      end;
   Outlook.free;
   end;
end;
  Mit Zitat antworten Zitat
 


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 18:48 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