Re: Email Adresse des Senders über MAPI holen
und wie ist das möglich?
vllt lässt sich Outlook irgendwie nur als Try Iocon oder so starten :?: |
Re: Email Adresse des Senders über MAPI holen
Du könntest Outlook mittels ShellExecuteAndWaitA() starten, wobei du als Parameter SW_MINIMIZE nimmst.
Grüße vom marabu |
Re: Email Adresse des Senders über MAPI holen
und wo bekomm ich den pfad her?
soll ja auf möglichst vielen systmem laufen? |
Re: Email Adresse des Senders über MAPI holen
Probier mal das hier, hab leider kein Outlook auf meinem aktuellen System laufen, deshalb keine Garantie.
So sollte aber Outlook auch ohne Pfad gestartet werden können. Es wird versucht, eine laufende Instanz zu finden, und wenns keine gibt eine zu erstellen.
Delphi-Quellcode:
var Outlook: OLEVariant;
begin try Outlook:=GetActiveOleObject('Outlook.Application') ; except try Outlook:=CreateOleObject('Outlook.Application') ; except ShowMessage('Outlook nicht installiert'); end; end; Outlook := Unassigned; end; |
Re: Email Adresse des Senders über MAPI holen
funzt leider nicht
dan kommt immer ein "OLeSyserror" Vorgang nicht verfügbar, aber nur wenn Outlook geschlossen is keine Ahnung was des heissen soll hab aber jetzt mal Outlook so gestartet und ich denk das, dass auch auf allen Systemen möglich ist ShellExecute(0,'open','outlook',nil,nil, SW_MINIMIZE); nur wie kann ich rausfinden ob des nicht schon offen ist? |
Re: Email Adresse des Senders über MAPI holen
So etwas könnte klappen:
Delphi-Quellcode:
FindWindow findet das Fenster anhand seines Titels. "Outlook" ist hier nur eine Annahme. Musst prüfen, ob das Fenster wirklich Outlook heisst, sonst funktionierts nicht.
var
hOutlook: HWND; begin hOutlook := FindWindow('Outlook', nil); if hOutlook = 0 then begin // Outlook muss geöffnet werden end; end; |
Re: Email Adresse des Senders über MAPI holen
Zitat:
|
Re: Email Adresse des Senders über MAPI holen
Hallo zusammen,
habe alles schön umgesetzt, es funktioniert, aber wenn im Body mehr als XY Zeichen (viele, genau wie viele es sind weiß ich nicht) vorkommen, so bleibt SG_Ausgabe.Cells[4,i]:=MailItem.Body; leer, denn im MailItem.Body ist nichts drin. Ich habe bereits alle Sting ind WideString in dem Unit MapiService verändert, leider ohne Erfolg. Was mache ich falsch, wie bekomme ich große Bodys in eine StringGrid? Danke, mfg Kef |
Re: Email Adresse des Senders über MAPI holen
Hallo,
ich habe versucht, "DisplayMyMailItems" zu nutzen und bin auf ein Problem beim Befehl "TInBox.Create" getroffen. Kann mir einer helfen? Ich arbeite mit: - Delphi 7.0 - Windows XP mit SP2 - Outlook 2002 mit SP3 Ich nutze den Profilnamen "Default". Diesen Namen habe ich aus dem Dialogfeld übernommen, welches sich öffnet, wenn ich ein Mapi.Logon ohne zusätzliche Argumente durchführe. Trage ich diesen Profilnamen wie im Beispiel als String ein, erhalte ich vom Compiler die Fehlermeldung "[Fehler] Unit1.pas(68): Inkompatible Typen: 'TMapiConnection' und 'String'". Jetzt bin ich den Umweg über "TMapiConnection.Create" gegangen. Hier ein Auszug aus dem Quellcode procedure DisplayMyMailItems; var ... MapiConnection:TMapiConnection; ... begin ... MapiConnection.Create('Default',false); ... InBox := TInBox.Create(MapiConnection); try MailItem := InBox.GetFirst; while Assigned(MailItem) do ... Jetzt erzeugt zwar der Compiler eine Exe-Datei, aber der Aufruf der Procedure endet mit der Fehlermeldung "A connection was successfully made to the MAPI subsystem, however an unknown error occurred locating one of the mailboxes for profile "Button2"." Interressant ist hier ..."Button2". Hier steht immer der Name des Steuerelementes, mit dem ich die Procedure aufrufe. In diesem Fall mit "TForm1.Button2Click(Sender: TObject);". Kann mir jemand sagen, was ich falsch mache? |
Re: Email Adresse des Senders über MAPI holen
Hab leider aktuell nur Vista mit Outlook 2007 hier am laufen, ein Test wär auf meiner Maschine sinnlos.
Aber eine Frage vorab, heisst dein Profil wirklich "Default"? Guck mal im Outlook unter "Extras" -> "E-Mail Konten..." -> "Vorhandene E-Mail-Konten anzeigen oder bearbeiten" -> Standardkonto auswählen -> "Ändern..." -> "Benutzername" Verwende mal diesen "Benutzername" als Profilname. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:34 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz