hi,
i had got a script from some resource that demonstrasted outlook and php.
but i had done perfectly but getting the following error.
I request members to help me with this.
Fatal error:
Uncaught exception 'com_exception' with message 'Parameter 0: Type mismatch. ' in C:\apachefriends\xampp\htdocs\outlook\COutlook.php:112 Stack trace: #0 C:\apachefriends\xampp\htdocs\outlook\COutlook.php(112): variant->GetDefaultFolder('olFolderInbox') #1 C:\apachefriends\xampp\htdocs\outlook\COutlook.php(129): COutLook->getUnreadinInbox() #2 C:\apachefriends\xampp\htdocs\outlook\comunread.php(10): COutLook->staticFolders() #3 {main} thrown in C:\apachefriends\xampp\htdocs\outlook\COutlook.php on line 112
Thanking all of you for the concern and consideration in advance ,I remain
really in need of help.
Hari
Do you have the code?
The problem is that the object method is expecting a certain type of 'VARIANT' and the one you passed is not correct. If you have the code I can show you how to fix your problem!
demo
Do you have the code?
The problem is that the object method is expecting a certain type of 'VARIANT' and the one you passed is not correct. If you have the code I can show you how to fix your problem!
demo
Yes,I can share it with you and thanks for the concern xtended by u.
I am providing the codes.
<?PHP
global $UnreadMessagesInFolder;
class COutLook{
//function for retreiving messages from the selected folder (Inbox or Outbox)
function getMessages($folder){
//Setup the folder table,.there is 4 elements:
//message number,message subject ,message type and date received
echo"
$folder
N:
Subject
Type Date";
//creating the COM instance for Outlook.application and MAPI session(access the outlook folders object)
$oOutlook = new COM("Outlook.Application");
$session= new COM("MAPI.Session");
//Log into the session like default user
$session->Logon();
//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 "$i
$item->Subject$item->Type$year/$month/$day";
}
echo"";
}
//view mesage from selected folder (Inbox or Outbox)
function ViewMessageFromFolder($id,$folder){
//create new instance of the COM Objects
$oOutlook = new COM("Outlook.Application");
$session= new COM("MAPI.Session");
//Log into the current working session
$session->Logon();
//get default folder
$inb=$session->$folder;
if($id==""){
echo "Message Viewer
No Messages Selected";
}
else{
$idint=(int)$id;
//get the messages in the selested folder
$items=$inb->Messages->item($idint);
//make message status read= true
$items->Unread="false";
//Update the message status into Outlook's Inbox
$items->Update(true);
//display the message
echo"Message Viewer";
echo"$i
$items->Subject$items->Type$items->Text";
}
}
function getUnreadinInbox(){
//get unread messages from the Inbox Folder
$oOutlook = new COM("Outlook.Application");
$oNs = $oOutlook->GetNamespace("MAPI");
$oFldr = $oNs->GetDefaultFolder(olFolderInbox);
$UnreadMessagesInFolder = $oFldr->UnReadItemCount;
return $UnreadMessagesInFolder;
}
function getUnreadinOutbox(){
//get unread messages from the Outbox Folder
$oOutlook = new COM("Outlook.Application");
$oNs = $oOutlook->GetNamespace("MAPI");
$oFldr = $oNs->GetDefaultFolder(olFolderOutbox);
$UnreadMessagesInFolder = $oFldr->UnReadItemCount;
return $UnreadMessagesInFolder;
}
function staticFolders(){
// List of the avaailable folders (static !!!)
$unread=$this->getUnreadinInbox();
$out_unr=$this->getUnreadinOutbox();
echo"Available folders in this version are:
Inbox($unread)
and Outbox($out_unr)";
}
//end of classs
}
?>
thanking you once again ....and expecting your help sincerely
Harish Balakrishnan Marar
Der Fehler kommt in dem Code aber nicht vor!
variant->GetDefaultFolder('olFolderInbox') muss heissen
variant->GetDefaultFolder(olFolderInbox) und ist im Code richtig.
olFolderInbox müsste dann eine Konstante sein.
Yes,I can share it with you and thanks for the concern xtended by u. I am providing the codes. <?PHP global $UnreadMessagesInFolder; class COutLook{ //function for retreiving messages from the selected folder (Inbox or Outbox) function getMessages($folder){ //Setup the folder table,.there is 4 elements: //message number,message subject ,message type and date received echo"
$folder N: Subject Type Date"; //creating the COM instance for Outlook.application and MAPI session(access the outlook folders object) $oOutlook = new COM("Outlook.Application"); $session= new COM("MAPI.Session"); //Log into the session like default user $session->Logon(); //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 "$i $item->Subject$item->Type$year/$month/$day"; } echo""; } //view mesage from selected folder (Inbox or Outbox) function ViewMessageFromFolder($id,$folder){ //create new instance of the COM Objects $oOutlook = new COM("Outlook.Application"); $session= new COM("MAPI.Session"); //Log into the current working session $session->Logon(); //get default folder $inb=$session->$folder; if($id==""){ echo "Message Viewer
No Messages Selected"; } else{ $idint=(int)$id; //get the messages in the selested folder $items=$inb->Messages->item($idint); //make message status read= true $items->Unread="false"; //Update the message status into Outlook's Inbox $items->Update(true); //display the message echo"Message Viewer"; echo"$i $items->Subject$items->Type$items->Text"; } } function getUnreadinInbox(){ //get unread messages from the Inbox Folder $oOutlook = new COM("Outlook.Application"); $oNs = $oOutlook->GetNamespace("MAPI"); $oFldr = $oNs->GetDefaultFolder(olFolderInbox); $UnreadMessagesInFolder = $oFldr->UnReadItemCount; return $UnreadMessagesInFolder; } function getUnreadinOutbox(){ //get unread messages from the Outbox Folder $oOutlook = new COM("Outlook.Application"); $oNs = $oOutlook->GetNamespace("MAPI"); $oFldr = $oNs->GetDefaultFolder(olFolderOutbox); $UnreadMessagesInFolder = $oFldr->UnReadItemCount; return $UnreadMessagesInFolder; } function staticFolders(){ // List of the avaailable folders (static !!!) $unread=$this->getUnreadinInbox(); $out_unr=$this->getUnreadinOutbox(); echo"Available folders in this version are: Inbox($unread) and Outbox($out_unr)"; } //end of classs } ?> thanking you once again ....and expecting your help sincerely Harish Balakrishnan Marar You have referenced 2 Outlook variables by their names, olFolderInbox and olFolderOutbox. These names are not recognised outside of Outlook, so you must use their values instead. olFolderInbox = 6 and olFolderOutbox = 4
Hi there,
I have been trying desperately to implement ‘Accessing an Outlook account/profile using PHP’. I believe the com object implementation will offer me the best solution. This is where the problem lies, even though I have copied the code and removed all comments, added in my username and password to the $session->logon() and it now comes back with an error (‘cdo.dll has been registered on my local pc, however not on the server’)… the error is as follows :
Fatal error: Uncaught exception 'com_exception' with message 'Parameter 0: Type mismatch. ' in C:\wamp\www\Training\COutLook.php:104 Stack trace: #0 C:\wamp\www\Training\COutLook.php(104): variant->GetDefaultFolder('olFolderInbox') #1 C:\wamp\www\Training\COutLook.php(121): COutLook->getUnreadinInbox() #2 C:\wamp\www\Training\comunread.php(10): COutLook->staticFolders() #3 {main} thrown in C:\wamp\www\Training\COutLook.php on line 104
If you can offer any assistance with this error it would be greatly appreciated… if your need the scripts to interpret the error they can be found at
http://www.digiways.com/articles/php/outlook/
Thank you very much for your time