ver - C#: lee correos electrónicos de cuentas no predeterminadas en Outlook
no puedo ver mis correos en outlook 2017 (1)
Intento simplemente leer e imprimir el contenido de los correos electrónicos de una carpeta específica y otra bandeja de entrada en Outlook usando C # (no mi bandeja de entrada predeterminada). Me resulta difícil encontrar ejemplos de esto en la web y he fallado por mi cuenta. También sé cómo imprimir los correos electrónicos de la cuenta predeterminada, pero no los adicionales.
Mi código aquí simplemente repite una lista de todas las bandejas de entrada e imprime sus nombres. El que quiero leer es el primer elemento de la colección. Agradezco cualquier ayuda con este problema. Gracias.
using System;
using System.Collections;
using Microsoft.Office.Interop.Outlook;
public class StorageReplies {
public static void Main() {
Application app = new Microsoft.Office.Interop.Outlook.Application();
_NameSpace ns = app.GetNamespace("MAPI");
Folders folders = ns.Folders;
foreach(MAPIFolder f in folders) {
Console.WriteLine(f.Name);
}
}
}
Puede obtener la Tienda para cada carpeta y luego llamar al método GetDefaultFolder
para obtener la carpeta de la bandeja de entrada para la tienda correspondiente de esta manera:
foreach (MAPIFolder f in folders)
{
MAPIFolder inbox_folder = f.Store.GetDefaultFolder(OlDefaultFolders.olFolderInbox);
foreach (MailItem item in inbox_folder.Items)
{
//Access item here
}
}
Sin embargo, en lugar de hacer eso, tiene sentido recorrer la propiedad de Stores
directamente así:
Stores stores = ns.Stores;
foreach (Store store in stores)
{
MAPIFolder inbox_folder = store.GetDefaultFolder(OlDefaultFolders.olFolderInbox);
foreach (MailItem item in inbox_folder.Items)
{
//Access item here
}
}