Forum Discussion
sagisela
Mar 03, 2021Copper Contributor
API / link for a list of Outlook/OWA/Office default folder names/strings
I'm trying to build a process that should read emails from default folders like Inbox, Drafts, Sent Items, Etc. To make it generic, I would need a list of the default translation folder names/strings...
- Mar 09, 2021
Thank you for your help. I've created the following class which I believe could and should be added to the official API.
using System; using System.Collections.Generic; using System.Reflection; using Oulook = Microsoft.Office.Interop.Outlook; namespace OutlookDefualtFolderNames { public static class OutlookToolsHMS { private const string k_MapiNamespaceStr = "mapi"; private static Oulook.NameSpace GetOutlookNameSpace() { Oulook.Application oApp; Oulook.NameSpace oNS; // Create the Outlook application. // in-line initialization oApp = new Oulook.Application(); // Get the MAPI namespace. oNS = oApp.GetNamespace(k_MapiNamespaceStr); // Log on by using the default profile or existing session (no dialog box). oNS.Logon(Missing.Value, Missing.Value, false, true); // Alternate logon method that uses a specific profile name. // TODO: If you use this logon method, specify the correct profile name // and comment the previous Logon line. //oNS.Logon("profilename",Missing.Value,false,true); return oNS; } public static List<string> GetAllDefualtTranslatedFolderNames() { List<string> folderNames = new List<string>(); Oulook.NameSpace oNS = GetOutlookNameSpace(); foreach (var folder in Enum.GetValues(typeof(Oulook.OlDefaultFolders))) { try { folderNames.Add(oNS.GetDefaultFolder((Oulook.OlDefaultFolders)folder).Name); } catch { } } return folderNames; } public static List<string> GetDefualtTranslatedFolderName(string name) { List<string> folderNames = new List<string>(); Oulook.NameSpace oNS = GetOutlookNameSpace(); string folderName; foreach (var folder in Enum.GetValues(typeof(Oulook.OlDefaultFolders))) { try { if (folder.ToString().ToLower().Contains(name.ToLower())) { folderName = oNS.GetDefaultFolder((Oulook.OlDefaultFolders)folder).Name; folderNames.Add(folderName); } } catch { } } return folderNames; } } }
sagisela
Copper Contributor
Thank you for your help. I've created the following class which I believe could and should be added to the official API.
using System;
using System.Collections.Generic;
using System.Reflection;
using Oulook = Microsoft.Office.Interop.Outlook;
namespace OutlookDefualtFolderNames
{
public static class OutlookToolsHMS
{
private const string k_MapiNamespaceStr = "mapi";
private static Oulook.NameSpace GetOutlookNameSpace()
{
Oulook.Application oApp;
Oulook.NameSpace oNS;
// Create the Outlook application.
// in-line initialization
oApp = new Oulook.Application();
// Get the MAPI namespace.
oNS = oApp.GetNamespace(k_MapiNamespaceStr);
// Log on by using the default profile or existing session (no dialog box).
oNS.Logon(Missing.Value, Missing.Value, false, true);
// Alternate logon method that uses a specific profile name.
// TODO: If you use this logon method, specify the correct profile name
// and comment the previous Logon line.
//oNS.Logon("profilename",Missing.Value,false,true);
return oNS;
}
public static List<string> GetAllDefualtTranslatedFolderNames()
{
List<string> folderNames = new List<string>();
Oulook.NameSpace oNS = GetOutlookNameSpace();
foreach (var folder in Enum.GetValues(typeof(Oulook.OlDefaultFolders)))
{
try
{
folderNames.Add(oNS.GetDefaultFolder((Oulook.OlDefaultFolders)folder).Name);
}
catch { }
}
return folderNames;
}
public static List<string> GetDefualtTranslatedFolderName(string name)
{
List<string> folderNames = new List<string>();
Oulook.NameSpace oNS = GetOutlookNameSpace();
string folderName;
foreach (var folder in Enum.GetValues(typeof(Oulook.OlDefaultFolders)))
{
try
{
if (folder.ToString().ToLower().Contains(name.ToLower()))
{
folderName = oNS.GetDefaultFolder((Oulook.OlDefaultFolders)folder).Name;
folderNames.Add(folderName);
}
}
catch { }
}
return folderNames;
}
}
}
Victor_Ivanidze
Mar 09, 2021Bronze Contributor
Hi sagisela,
great!