RE: [PHP] Displaying an Outlook Calendar on a webpage using PHP
| From: | Justin dot Baiocchi at csiro dot au | Date: | Tue, 14 Jun 2005 01:36:05 +0000 |
| Subject: | RE: [PHP] Displaying an Outlook Calendar on a webpage using PHP | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-216923@lists.php.net to get a copy of this message | ||
Hi, perhaps someone might be able to look at this code - it works when I
run it from the command line, but not when viewed through a web page. I
am running IIS 6 on Windows 2003 server.
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");
}
?>