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"); 
} 
?> 
 
 

Reply via email to