Witam chciałbym obsłużyć plik poczty pst z poziomu php robic rozne filtracje i takie tam, ale to mniej ważne najważniejsze to zeby wogóle wyświetlić jakiegos maila dalej sobie poradze, a więc zrobiłem wszystko według tej instrukcji:

http://www.digiways.com/articles/php/outlook/

i tak:
plik comunread.php:
  1. <?
  2. //previous class
  3. require("COutLook.php");
  4.  
  5. $class= new COutLook;
  6. if (!isset($folder)){
  7. $class->staticFolders();
  8. }
  9. else {
  10. $class->staticFolders();
  11. $class->getMessages($folder);
  12. }
  13. //------------------------------------------------------------------------------
  14. ?>


plik COutLook.php:
  1. <?PHP
  2. global $UnreadMessagesInFolder;
  3.  
  4. class COutLook
  5. {
  6. //function for retreiving messages from the selected folder (Inbox or Outbox)
  7. function getMessages($folder){
  8. 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>";
  9.  
  10. $oOutlook = new COM("Outlook.Application");
  11. $session= new COM("MAPI.Session");
  12. $session->Logon();
  13. $inb=$session->$folder;
  14. $messages=$inb->Messages->Count();
  15.  
  16. for($i=1;$i<($messages+1);$i++)
  17. {
  18. $item=$inb->Messages->item($i);
  19. $timeres=$item->TimeReceived();
  20. $date_vb=getdate($timeres);
  21. $year=$date_vb['year'];
  22. $month=$date_vb['mon'];
  23. $day=$date_vb['mday'];
  24. 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>";
  25. }
  26. echo"</table>";
  27. }
  28.  
  29.  
  30. function ViewMessageFromFolder($id,$folder)
  31. {
  32. //create new instance of the COM Objects
  33. $oOutlook = new COM("Outlook.Application");
  34. $session= new COM("MAPI.Session");
  35. //Log into the current working session
  36. $session->Logon();
  37. //get default folder
  38. $inb=$session->$folder;
  39. if($id==""){
  40. echo "<font face=verdana size=2 color=darkblue>Message Viewer</font><br><font face=verdana size=2 color=red><center>No Messages Selected</center></font>";
  41. }
  42. else{
  43. $idint=(int)$id;
  44. //get the messages in the selested folder
  45. $items=$inb->Messages->item($idint);
  46. //make message status read= true
  47. $items->Unread="false";
  48. //Update the message status into Outlook's Inbox
  49. $items->Update(true);
  50. //display the message
  51. echo"<font face=verdana size=2 color=darkblue>Message Viewer</font>";
  52. echo"<table width=100%><tr><td><font face=verdana size=2 color=darkblue>$i</td><td><font face=verdana size=2 color=darkblue><b>$items->Subject</b></td><td><font face=verdana size=2 color=darkblue>$items->Type</td><td></td></font><tr><tr><td colspan=4><pre><font face=verdana size=2 color=darkblue>$items->Text</pre></td></tr>";
  53. }
  54. }
  55. function getUnreadinInbox()
  56. {
  57. //get unread messages from the Inbox Folder
  58. $oOutlook = new COM("Outlook.Application");
  59. $oNs = $oOutlook->GetNamespace("MAPI");
  60. $oFldr = $oNs->GetDefaultFolder(olFolderInbox);
  61. $UnreadMessagesInFolder = $oFldr->UnReadItemCount;
  62. return $UnreadMessagesInFolder;
  63. }
  64.  
  65. function getUnreadinOutbox()
  66. {
  67. //get unread messages from the Outbox Folder
  68. $oOutlook = new COM("Outlook.Application");
  69. $oNs = $oOutlook->GetNamespace("MAPI");
  70. $oFldr = $oNs->GetDefaultFolder(olFolderOutbox);
  71. $UnreadMessagesInFolder = $oFldr->UnReadItemCount;
  72. return $UnreadMessagesInFolder;
  73. }
  74.  
  75. function staticFolders()
  76. {
  77. // List of the avaailable folders (static !!!)
  78. $unread=$this->getUnreadinInbox();
  79. $out_unr=$this->getUnreadinOutbox();
  80. echo"<font color=blue face = verdana size=1>Available folders in this version are: <a href=comunread.php?folder=Inbox>Inbox(<font color=red>$unread</font>)</a>and <a href=comunread.php?folder=Outbox>Outbox(<font color=red>$out_unr</font>)</a></font>";
  81. }
  82. }
  83. //------------------------------------------------------------------------------
  84. ?>


index.html:
  1. [b]<iframe src="comunread.php" width="30%" height="100%"></iframe>
  2. <iframe src="view.php" width="69%" height="100%"></iframe>[/b]

view.php:
  1. <?
  2. //previous class
  3. require("COutLook.php");
  4. $class= new COutLook;
  5. if ($id=="" || $folder== ""){
  6. echo "<font face=verdana size=2 color=darkblue>Message Viewer</font><br><font face=verdana size=2 color=red><center>No Messages Selected</center></font>";
  7. }
  8. else{
  9. $class->ViewMessageFromFolder($id,$folder);
  10. }
  11. //------------------------------------------------------------------------------
  12. ?>


no i teraz walczyłem torche zanim doszedłem do tej wersji, zwalczylem juz z 10 różnych errorów i teraz utknąłem na tym:

Fatal error: Uncaught exception 'com_exception' with message 'Failed to create COM object `Outlook.Application': Nieprawidłowa składnia. ' in D:\wamp\www\outlook\COutLook.php:58 Stack trace: #0 D:\wamp\www\outlook\COutLook.php(58): com->com('Outlook.Applica...') #1 D:\wamp\www\outlook\COutLook.php(78): COutLook->getUnreadinInbox() #2 D:\wamp\www\outlook\comunread.php(7): COutLook->staticFolders() #3 {main} thrown in D:\wamp\www\outlook\COutLook.php on line 58

screen:









Prosze o pomoc może ktoś już próbował zrobić coś takiego i zetknął się z tym problemem będe niezmirnie wdzięczny smile.gif


odsieżam temat