Displaying an Outlook Calendar on a webpage using PHP

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello all,
 
I am trying to publish an Outlook Calendar on a web page using PHP and
COM. I have managed to track down on the net some examples of how it
could be done. The most promising is the code below. However, all that
happens is that outlook.exe is started on the server, but nothing is
displayed on the web page and it just times-out.
 
I am running PHP 4.0.18 on Windows 2003 server and I have Outlook 2002
installed on the server.
Does anybody know why it doesn't work?
 
Thanks 
Justin
 
 
 
<?php 
$comobjOutlook = new COM("outlook.application") or die("Unable to
instantiate outlook");
 

//$comobjOutlook -> Activate;
 

# This is your mailbox name just like it appears in your Folders view.
It might be 'Inbox' or something else. 
$targetmailboxname = "Mailbox - Baiocchi, Justin (CSIRO IT, Armidale)";
 

# This is the folder you're looking for. In this case, I'm looking for
calendar items, but you can look for 
# any folder. You need to add another loop to look for subfolders.
Although there's probably a better 
# way, that's how I did it when I needed to get to Personal
Folders/Inbox/Subfoldername 
$targetfoldername = "Calendar"; 
 

$objNamespace = $comobjOutlook->GetNameSpace("MAPI"); 
$objFolders = $objNamespace->Folders(); 
$mailboxcount = $objFolders -> Count(); 
 

$foundmailbox = FALSE; 
for ($i=1; $i<=$mailboxcount; $i++) { 
  $folderitem = $objFolders ->Item($i); 
  if ($folderitem -> Name == $targetmailboxname) { 
    $objMailbox = $folderitem; 
    $foundmailbox = TRUE; 
  } 
} 
 

$foundcal = FALSE; 
if ($foundmailbox) { 
  $objFolders = $objMailbox->Folders(); 
  $foldercount = $objFolders -> Count(); 
 

  for ($i=1; $i<=$foldercount; $i++) { 
    $folderitem = $objFolders -> Item($i); 
    if ($folderitem -> Name == $targetfoldername) { 
      $objCalendar = $folderitem; 
      $foundcal = TRUE; 
    } 
  } 
 

  if ($foundcal) { 
    $objItems = $objCalendar->Items(); 
    $itemcount = $objItems->Count(); 
 

    for ($i=1; $i<=$itemcount; $i++) { 
      $apptitem = $objItems -> Item($i); 
      $apptstart = $apptitem -> Start(); 
      $apptend = $apptitem -> End(); 
      $apptallday = $apptitem -> AllDayEvent(); 
      $apptrecur = $apptitem -> IsRecurring(); 
      $apptsubject = $apptitem -> Subject(); 
      $apptlocation = $apptitem -> Location(); 
 

      $secondsadj = $apptstart - 14400; 
      $startadj = date("m/d/Y H:i:s", mktime(0,0,$secondsadj,1,1,1970));

 

      $secondsadj = $apptend - 14400; 
      $endadj = date("m/d/Y H:i:s", mktime(0,0,$secondsadj,1,1,1970)); 
 

      if($apptallday) { $allday = "All Day"; } else { $allday = ""; } 
      if($apptrecur) { $recurring = "Recurring"; } else { $recurring =
""; } 
 

      echo "$apptsubject @ $apptlocation\r\nFrom: $startadj To:
$endadj\r\n"; 
      if ($allday <> "" OR $recurring <> "") echo "$allday
$recurring\r\n"; 
      echo "\r\n\r\n"; 
    } 
 

  } else { 
    die ("Did not find calendar folder"); 
  } 
 

} else { 
  die("Did not find target mailbox: $targetmailboxname"); 
} 
?> 
 
 

[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux