Outlook Email via ConversationsID suchen und anzeigen



  • Hallo Leute, ich würde gern aus einem bestehendem C++ Programm
    eine bestimmte EMail im Outlook über die ConversationsID anzeigen bzw. öffnen,
    ist das überhaupt möglich?
    Ich würde das gern über das OLE Object machen, aber ich habe keine Ahnung wo ich da anfangen soll,
    da ich noch nie mit OLE gearbeitet habe.

    Variant MSOApp = CreateOleObject("Outlook.Application");
    

    Versenden ist kein Problem, dafür gibt es ja genügend Examples aber lesen einer bestimmten EMail über die ConversationsID aus dem Posteingang, gibt es nix. 😞
    Kann mir jemand bei diesem Problem vielleicht helfen ??

    Hab es über die EntryID gelöst. 😁

    void __fastcall Tadressverwaltung::EMailOeffnen(AnsiString m_mail_ID)
    {
    		Variant outlook, nameSpace, CurrentMail;
    
    		AnsiString EntryID = m_mail_ID; //..Aus der Datenbank EntryID aus Outlook
    
    		if(EntryID.Length() < 100){  //..EntryID = 140 Zeichen
    			MessageDlg("Diese EMail kann in Outlook nicht geöffnet werden!\n(Fehler 1002)", mtInformation, TMsgDlgButtons() << mbOK, 0);
    			return;
    		}
    
    		try
    		{ //..Wenn Outlook schon aktiv (offen)
    			outlook = GetActiveOleObject("Outlook.Application");
    		}
    		catch (...)
    		{
    			try
    			{
    				outlook = CreateOleObject("Outlook.Application");
    			}
    			catch (...)
    			{
    				ShowMessage("Microsoft Outlook ist nicht installiert");
    			}
    		}
    
    		nameSpace = outlook.OleFunction("GetNameSpace", WideString("MAPI"));
    		CurrentMail = nameSpace.OleFunction("GetItemFromID", (WideString) EntryID);
    		if (CurrentMail.pdispVal == NULL)
    			MessageDlg("Keine EMail gefunden !", mtInformation, TMsgDlgButtons() << mbOK, 0);
    		else
    		{
    			CurrentMail.OleFunction("Display");
    		}
    
    		VarClear(CurrentMail);
    		VarClear(outlook);
    		VarClear(nameSpace);
    }
    

Log in to reply