Get all mails in outlook from a specific folder
18,822
Solution 1
This should work!!!
MAPIFolder mailsFromThisFolder;
MAPIFolder mainFolder = oNS.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox);
foreach (MAPIFolder folder in mainFolder.Folders)
{
GetFolders(folder);
}
public void GetFolders(MAPIFolder folder)
{
if (folder.Folders.Count == 0)
{
if (folder.Name == "Folder Name")
{
Console.WriteLine(m.FullFolderPath);
mailsFromThisFolder = folder;
}
}
else
{
foreach (MAPIFolder subFolder in folder.Folders)
{
GetFolders(subFolder);
}
}
}
Outlook.Items items = mailsFromThisFolder.Items;
foreach (Outlook.MailItem mail in items)
{
//do someting
}
Solution 2
- Logon must come before you do anything else.
Use something like the following
oFolder = oNS.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox); oSubfolder = oFolder.Folders.Item("wolfy-server");
Comments
-
Wolfy almost 2 years
I would like to get all mails in outlook from a specific folder:
My folder structure:
I find this Code to get all mails in outlook inbox folder (not the inbox in picture!):
Outlook.Application oApp; Outlook._NameSpace oNS; Outlook.MAPIFolder oFolder; Outlook._Explorer oExp; oApp = new Outlook.Application(); oNS = (Outlook._NameSpace)oApp.GetNamespace("MAPI"); oFolder = oNS.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox); oExp = oFolder.GetExplorer(false); oNS.Logon(Missing.Value, Missing.Value, false, true); Outlook.Items items = oFolder.Items; foreach (Outlook.MailItem mail in items) { //do someting }
Can someone tell me how to get all mails from a specific folder (like: wolfy-server)?
-
Dmitry Streblechenko almost 11 yearsThere is absolutely no reason to loop through subfolders. Folders.Item takes either an integer index (1 through Count) or the subfolder name
-
Hitesh Purohit almost 7 yearsI got below error when i tried "foreach (Outlook.MailItem mail in items) " Unable to cast COM object of type 'System.__ComObject' to interface type 'Microsoft.Office.Interop.Outlook.MailItem'.