Results 1 to 8 of 8

Thread: outlook 365 probleem

  1. #1
    Reader
    Join Date
    May 2002
    Location
    Holland
    Posts
    3,382

    outlook 365 probleem

    Bij een klant hebben ze outlook 365 geinstalleerd en in de "cloud" gehangen.
    Nu gaat mijn outlook-automation ineens mis. De applicatie kan de mapi mappen niet meer vinden.
    (het programma bewaart kopietjes van msg bestanden en zet een link naar dat bestand in de database).

    Ik moet er bij zeggen dat het programma gebruik maakt van de antieke Outlook2000 interface zoals deze bij delphi zit..

  2. #2
    Als ze lokaal geen offline Outlook 2016 hebben geïnstalleerd (alleen beschikbaar vanaf de een na laagste versie) dan zul je dus geen gebruik kunnen maken van de mapi interface.

    Opties:
    *) Installeer Thunderbird en gebruik de mapi daarvan om alleen mail te versturen
    *) Verzend de mail direct via een smtp-provider (geen mogelijkheid voor aanpassen mail door gebruiker van te voren)
    *) Maak een integratie met Office 385 om de mail direct daarin te zetten en te versturen

    Maar je geeft aan dat de klant "outlook 365" heeft geïnstalleerd. Ten eerste "outlook 365" bestaat niet dus je moet eerst achterhalen of ze echt iets lokaals op hun computer hebben staan. Hebben ze dat inderdaad laat ze dan kijken bij Help/Info welke versie dat is. Is dat inderdaad Outlook 2016 en werkt het nog steeds niet dan kan het zijn dat je even een kleine registry fix moet doen om Outlook 2016 als mapi-client in te stellen (laat maar weten of dat het geval is).

    https://support.office.com/en-us/art...5-d48d82b2257c

  3. #3
    Goedemiddag,

    Ik heb eenzelfde probleem. Voorheen Outlook 2013 gebruikt en nu Outlook 2016. Outlook automation gaat bij mij ook fout. Ik krijg een foutmelding Bewerking is mislukt bij Outlook := GetActiveOleObject('Outlook.Application'); echter de e-mail wordt vervolgens wel aangemaakt. Wel registry fix moet worden uitgevoerd?

    Hieronder de code die ik gebruik:

    Code:
    procedure TPDKlantenAlureForm.SendEmailOutlook(Aan, Bcc: String);
    var
      Outlook: OleVariant;
      Mail: Variant;
    const
      olMailItem = $00000000;
    begin
      try
        Outlook := GetActiveOleObject('Outlook.Application');
      except
        Outlook := CreateOleObject('Outlook.Application');
      end;
      Mail := Outlook.CreateItem(olMailItem);
      Mail.To := Aan;
      Mail.Bcc := Bcc;
      Mail.Display;
    end;
    Last edited by Pascal G++; 25-Apr-17 at 16:43. Reason: toevoeginv code

  4. #4
    Reader
    Join Date
    May 2002
    Location
    Holland
    Posts
    3,382
    Niet leuk...

    exception class : EOleException
    exception message : De bewerking is mislukt. Kan een object niet vinden.

    Code:
      fOutlook := TOutlookApplication.Create(Self);
      fNameSpace := fOutlook.Session;
    //.......
    Code:
        if Node = nil then
          aFolders := fNameSpace.Folders
        else begin
          aNodeMapi := GetMap(Node)^.fMapi;
          aFolders := aNodeMapi.Folders;
        end;
    
        // als getfirst misgaat kunnen we absoluut niet verder
        try
          Mapi := aFolders.GetFirst;
        except
          on E: System.SysUtils.Exception do
          begin
            ShowMessage('Fout bij het uitlezen van de eerste folder.' + CRLF + E.Message);
            Exit;
          end;
        end;
    
        while Assigned(Mapi) do // bij mij gaat het hier ergens fout
        begin
          if (Mapi.DefaultItemType = olMailItem) then
          begin
            Child := fTree.AddChild(Node);
            Map := GetMap(Child);
            Map^.fText := Mapi.Name;
            Map^.fMapi := Mapi;
            // set expandable
            fTree.HasChildren[Child] := Mapi.Folders.Count > 0;
          end;
    
          Mapi := aFolders.GetNext;
        end;

  5. #5
    Reader
    Join Date
    May 2002
    Location
    Holland
    Posts
    3,382
    Sommige clients gebruiken outlook 2016, sommige outlook 2013.
    maar op de clients is niets veranderd..
    alleen exchange-server hangt nu in de cloud.

  6. #6
    CreateOleObject('Outlook.Application');
    Dat is geen "MAPI" wat je hier doet. Dat is OLE Automation.

    MAPI doe je met MapiSendMail() uit Winapi.Mapi.
    Die gebruikt de Windows api MAPISendMail om MAPI aan te spreken.

    Mijn registry-fix is voor als je via de echte MAPI-methode een MAPI-error 2 krijgt terwijl er wel Outlook geïnstalleerd is.

    In geval je dus CreateOleObject('Outlook.Application') gebruikt dan kun je dus ook alleen maar Outlook gebruiken. In geval van de MAPI api kun je ook andere MAPI-clients gebruiken (zoals Thunderbird, Outlook Express, Windows Live Mail e.d.).

    // bij mij gaat het hier ergens fout
    Dat is natuurlijk nogal vaag.
    Je zult even precies moeten kijken waar het mis gaan.

  7. #7
    Reader
    Join Date
    May 2002
    Location
    Holland
    Posts
    3,382
    Je zult even precies moeten kijken waar het mis gaan.
    Yep... trial and error met debuglogging :-(

  8. #8
    Reader
    Join Date
    May 2002
    Location
    Holland
    Posts
    3,382
    De outlook client kon de mapifolders waar mijn prog op klapte zelf ook niet benaderen (!!). Synchronisatie probleempje???
    Een MapiFolder interface waarvan niet 1 property geldig is. Ik vind het knap..
    try voegfoldertoe() except {doe niets} end bood soelaas voor nu :-(

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •