469,312 Members | 2,493 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Share your developer knowledge by writing an article on Bytes.

Accessing the inbox through MAPI using C# .NET

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
3 30152
NitinSawant
270 100+
Can u pls tell me how to access rediffmail inbox using c#??
May 23 '08 #2
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
12,516 Expert Mod 8TB
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

Post your reply

Sign in to post your reply or Sign up for a free account.

Similar topics

reply views Thread by Jason Ferree | last post: by
1 post views Thread by john bailo | last post: by
3 posts views Thread by John | last post: by
reply views Thread by zhoujie | last post: by
reply views Thread by suresh191 | last post: by
reply views Thread by harlem98 | last post: by
1 post views Thread by Geralt96 | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.