You are not logged in.

wcf.regNote.message

braindead

Beginner

  • "braindead" started this thread

Posts: 22

  • Send private message

1

Monday, April 26th 2004, 11:30pm

zugriff auf outlook?

moin,

ich versuche über php auf outlook zuzugreifen. auslesen der mailanzahl funktioniert auch noch. sobald ich aber den inhalt der mails kommen will, bekomme ich eine fehlermeldung.

auslesen der anzahl geht mit

Source code

1
2
3
4
5
6
7
8
  function getUnreadinOutbox() {
    //get unread messages from the Outbox Folder
    $oOutlook = new COM("Outlook.Application.9");
    $oNs = $oOutlook->GetNamespace("MAPI");
    $oFldr = $oNs->GetDefaultFolder(4);
    $UnreadMessagesInFolder = $oFldr->UnReadItemCount;
    return $UnreadMessagesInFolder;
  }


inbox geht genauso, halt nur ...folder(6)

sobald ich aber auf den content der mails zugreifen will, geht das nicht mehr. ich benutze übrigens den kram, den ich mal im inet gefunden habe.

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
    function getMessages($folder) {
    echo"<body text=darkblue>
    <br><font color=red face=verdana size=3><b>$folder</b></font>
    <table width=100%>
    <TR bgcolor=#EEEFFF><td><font face=verdana size=2>N:</td><td>
    <font face=verdana size=2> Subject</td><TD>
    <font face=verdana size=2 >Type</TD><TD><font face=verdana size=2> Date</TD></TR>";

    $oOutlook = new COM("Outlook.Application");
    $session= new COM("MAPI.Session");
    $session->Logon(); <- ZEILE 27 !

    //selecting working folder Inbox ot Outbox/
    $inb=$session->$folder;

    //get the total messages in Folder
    $messages=$inb->Messages->Count();

    //get the elements of the message object

    for($i=1;$i<($messages+1);$i++)
    {
      $item=$inb->Messages->item($i);
      //date string
      $timeres=$item->TimeReceived();
      $date_vb=getdate($timeres);

      //date elements
      $year=$date_vb['year'];
      $month=$date_vb['mon'];
      $day=$date_vb['mday'];
      //entering the folder elements
      echo "<tr bgcolor=#F0F0F0><td><font face=verdana size=2 color=darkblue>$i</td><td><font face=verdana size=2 color=darkblue>
        <a href=view.php?id=$i&folder=$folder target=bottomFrame><font face=verdana size=2 color=#FF6666>$item->Subject</font></td><td><font face=verdana size=2 color=darkblue>$item->Type</td><td><font face=verdana size=1 color=darkblue>$year/$month/$day</td></font><tr>";
    }
    echo"</table>";
  }


lokal funzt das alles in der entwicklungsumgebung. sobald ich das in den apache klatsche, passiert folgendes.

outlook als Dienst für Unternehmen konfiguriert liefert.

Source code

1
Warning: (null)(): Invoke() failed: Ausnahmefehler aufgetreten. Source: Collaboration Data Objects Description: [Collaboration Data Objects - [MAPI_E_LOGON_FAILED(80040111)]] in l:\programme\apache group\apache\htdocs\outlook\COutLook.php on line 27


outlook als normalen InternetDienst konfiguriert liefert.

Source code

1
Warning: (null)(): Invoke() failed: Ausnahmefehler aufgetreten. Source: Collaboration Data Objects Description: [ - [(80004005)]] in l:\programme\apache group\apache\htdocs\outlook\COutLook.php on line 27


getestet wird die ganze geschichte mit win2k und outlook2000, sowie Apache1.3. und php 4.3.

hab ewig lange gebraucht, bis ich gemerkt habe, dass win2ksp3 das ausführen com objekten fürs inet deaktiviert. habs also mal wieder aktiviert.

vlt hat ja schon einer erfolgreich outlook per localhost ordentlich auslesen können. ist nur ne einstellungssache, denke ich mal, da die ganze geschichte in der entwicklungsumgebung lokal funzt. aber halt nicht mehr wenn ich es per inet(localhost) aufrufe.

bd

//Zeile 27 hab ich im code nochmal extra gekennzeichnet.

This post has been edited 1 times, last edit by "braindead" (Apr 26th 2004, 11:32pm)


Prometheus

Administrator

Posts: 3,278

  • Send private message

2

Monday, April 26th 2004, 11:57pm

oha ... da gehts auch schon gleich ans eingemachte ;)

kurz ne frage vorweg. warum die mails in outlook empfangen und dann mühsam wieder in ne webanwendung hantieren wenn es fertige tools gibt um sowas im web in emfang zu nehmen? aber gut wirst deine gründe haben ;)

in deiner zeile 27 wird ein logon aufgerufen. da muß es noch eine funktion zu geben. da scheint was schief zu laufen bzw. stimmen wohl so nach der meldung zu deuten die daten nicht. das teil muß ja quasie die mail auf outlook abrufen und dazu wohl einen anmeldeprozess abwickeln. ich hab allerdings noch nicht mit der com schnittstelle von php hantiert da bin ich erstmal überfragt bei.

poste vielleicht mal die funktions dateien so das man die mal sieht und auch den code wie das ganze gesteuert wird.
Jedwege Anfragen bitte an Technomausi oder ShaoKhan richten. Dieses Konto ist und bleibt inaktiv.

Ephraim

Professional

Posts: 826

Location: coder-board.info

Occupation: Info-Student

  • Send private message

3

Tuesday, April 27th 2004, 8:57am

Hab sowas über C/C++ schon mal gemacht... Kommunikation
mit Outlook, mein ich. Dafür hab ich beim Logon aber nen User
und en Passwort benötigt... und da bei dir ja die
Fehlermeldung MAPI_E_LOGON_FAILED kommt, denke ich
des deine Logon Daten einfach nicht korrekt sind.

Guck mal hier is ne offizielle Erklärung vom M$ für deinen
Fehler:
MAPI_E_LOGON_FAILED

Ciao Ephraim

Ephraim

Professional

Posts: 826

Location: coder-board.info

Occupation: Info-Student

  • Send private message

4

Tuesday, April 27th 2004, 9:02am

Hier noch ein paar beschreibungen zu den einzelnen MAPI.Session COM
funktionen:
MAPI.Session

und hier direkt zu der Logon Methode:
Logon()

und da kann man noch ein paar Parameter mit angeben ... die fehlen dir
anscheinend.

Ciao Ephraim

braindead

Beginner

  • "braindead" started this thread

Posts: 22

  • Send private message

5

Tuesday, April 27th 2004, 10:55am

thx für die antworten.

die seite mit der mapi beschreibung hab ich denn gestern abend auch noch gefunden. session.logon ist wohl eher für exchange gedacht. hab die mapi.session rausgeschmissen und alles umgestrickt. funzt jetzt. :D

wer sich fragt, wofür eigentlich ein webinterface für outlook, wenn man doch einfach das icon von outlook selber anklicken könnte. die ganze sache ist für cms.

wer sich mit dem code von http://www.digiways.com/articles/php/outlook/ auseinandersetzen will, als anregung sicherlich ganz nett, aber voll von fehlern.

mal sehen, was als nächstes kommt. 8)

bd

Prometheus

Administrator

Posts: 3,278

  • Send private message

6

Tuesday, April 27th 2004, 11:02am

ja das es sinn machen kann eine mail online in php zu haben mag ja sein. nur wozu erst mit outlook abrufen und erst dann wieder ins netz holen? du kannst doch mit php die mail direkt abrufen und dann ein cms bauen was die mail dann weiter behandelt. (cms war doch dieses neumoditsche dings bezüglich kontakte und aufgabenverwaltung ganz grob gesehen oder?)
Jedwege Anfragen bitte an Technomausi oder ShaoKhan richten. Dieses Konto ist und bleibt inaktiv.

braindead

Beginner

  • "braindead" started this thread

Posts: 22

  • Send private message

7

Tuesday, April 27th 2004, 11:16am

der umweg im moment erstmal über outlook, weils sie da auch noch gespeichert werden, genauso wie termine, adressen usw. später geht das über ne datenbank, dann kann man outlook deinstallieren. :D

cms (Content Management System) behandelt eigentlich das, was du willst. bei dem einem ist es ein onlineportal zum erstellen von mails und briefen, der andere betreibt damit ein webshop, der nächste dann zur archivierung und und und. steht die halt frei, mit welchem content du das aufbaust.

bd

Prometheus

Administrator

Posts: 3,278

  • Send private message

8

Tuesday, April 27th 2004, 11:19am

ach ja .. hatte nen denkfehler wegen dem cms ... da gibts ja fertige skripte für alles mögliche. hab sowas mal gesehen um newsletter auszulesen und die news automatisch auf der homepage einbauen zu lassen. da gibts ja alle möglichen sachen wozu das gut sein kann.
Jedwege Anfragen bitte an Technomausi oder ShaoKhan richten. Dieses Konto ist und bleibt inaktiv.

wcf.user.socialbookmarks.titel