By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
424,984 Members | 1,011 Online
Bytes IT Community
Submit an Article
Got Smarts?
Share your bits of IT knowledge by writing an article on Bytes.

Accessing the inbox through MAPI using C# .NET

P: 17
This article discusses about how can we access the inbox through MAPI using C# .NET. It also discusses about how to store the attachment in the local directory, how to create a folder in the inbox

Need to add the reference Microsoft CDO 1.21 Library to the project

Expand|Select|Wrap|Line Numbers
  1. //Declarations
  2. MAPI.Message objMsg, objMsg_Arch;
  3. MAPI.Messages objMsgs;
  4. MAPI.Attachment objAttach;
  5. MAPI.Attachments objAttachments;
  6. MAPI.Folder objFolder;
  7. MAPI.AddressEntry objAddressEntry;
  8. int intTotalMsgs;
  9. string strLocalDir;
  10.  
  11. //To get the total message count in the inbox
  12. objFolder = (Folder)objSession.Inbox;
  13. objMsgs = (Messages)objFolder.Messages;
  14. intTotalMsgs = (int)objMsgs.Count;
  15.  
  16. //To get the sender
  17. objMsg = (MAPI.Message)(objMsgs.get_Item(intMsgLoop));
  18. objAddressEntry = (AddressEntry)objMsg.Sender;
  19.  
  20. //To save the attachment to local disk
  21. objAttachments = (Attachments)objMsg.Attachments;
  22. objAttach = (Attachment)objAttachments.get_Item(intMsg);
  23. if ((CdoAttachmentType)objAttach.Type == CdoAttachmentType.CdoFileData)
  24. {
  25.     objAttach.WriteToFile(strLocalDir + objAttach.Name.ToString());
  26. }
  27.  
  28. //To create a folder in the inbox
  29. Folder objFolder;
  30. Folders objFolders;
  31. Folder objItemFolder;
  32. int intFolderCount;
  33. string strFldrArch;
  34. bool blnOK;
  35.  
  36. objFolder = (Folder)objSession.Inbox;
  37. objFolder = (Folder)objSession.GetFolder(objFolder.ID,objFolder.StoreID);
  38. objFolders = (Folders) objFolder.Folders;
  39. intFolderCount = (int)objFolders.Count;
  40.  
  41. for (int intLoop = 1; intLoop <= intFolderCount; intLoop++)
  42. {
  43.    objItemFolder = (Folder)objFolders.get_Item(intLoop);
  44.    if (objItemFolder.Name.ToString() == strFldrArch)
  45.    {
  46.        blnOK = true;
  47.        objFolder = objItemFolder;
  48.        break;
  49.    }
  50. }
  51. if (!blnOK)
  52. {
  53.    objFolder = (Folder)objFolders.Add(strFldrArch);
  54.    objFolder.Update(Missing.Value, Missing.Value);
  55. }
  56.  
  57. //To delete the message from the inbox
  58. objMsg.Delete(Missing.Value);
  59.  
  60. //To forward the message
  61. Message objMsgFwd;
  62. Recipients objRecipients;
  63.  
  64. objMsgFwd = (MAPI.Message)objMsg.Forward();
  65. objRecipients = (Recipients)objMsgFwd.Recipients;
  66. objRecipients.Add(<RecipientAddr>, Missing.Value, CdoRecipientType.CdoTo, 
  67. Missing.Value);
  68. objMsgFwd.Text = <Body Message>;
  69. objMsgFwd.Recipients = objRecipients;                                                    objRecipients.Resolve(Missing.Value);
  70. objMsgFwd.Send(false, Missing.Value, Missing.Value);
  71.  
  72. //To move the message to a folder
  73. object objFolderID, objStoreID;
  74. objFolderID = objFolder.ID; //objFolder is the folder where the msg to 
  75. be moved
  76. objStoreID = objFolder.StoreID;
  77. objMsgArch = (MAPI.Message)objMsg.MoveTo(objFolderID, objStor
  78.  
May 2 '08 #1
Share this Article
Share on Google+
3 Comments


100+
P: 270
Can u pls tell me how to access rediffmail inbox using c#??
May 23 '08 #2

wheresjeannine
P: 1
Is this missing article some essential setup details because after adding the CDO as a reference this code does not even compile let alone run
Jun 8 '12 #3

Rabbit
Expert Mod 10K+
P: 12,349
As far as I can tell, that code isn't meant to be fully functional in of itself. It is merely code snippets to be cut, pasted, and edited to fit your needs. The code in between each commented line is an example of how to accomplish the task of the preceding comment. For example,
Expand|Select|Wrap|Line Numbers
  1. //To delete the message from the inbox 
  2. objMsg.Delete(Missing.Value); 
That is just an example of how to delete a message. It doesn't actually delete anything unless you set objMsg to an actual message and replace Missing.Value with the correct boolean value.
Jun 8 '12 #4