Comment puis-je accéder à une boîte de réception de compte Outlook en utilisant C#? J'ai essayé d'utiliser le modèle d'objet Outlook et IMAP, mais il affiche uniquement le compte Outlook connecté à ma machine. J'essaie de me connecter à un compte différent avec son nom d'utilisateur et son mot de passe, mais il se connecte toujours à mon compte machine local. Je lis que les perspectives de vous déconnecter et de fermer devraient résoudre ce problème, mais il n'a pas changé les résultatsComment puis-je accéder à une boîte de réception de compte Outlook en utilisant C#?
Voici le code
using System;
using System.Reflection;
using Outlook = Microsoft.Office.Interop.Outlook;
namespace ConsoleApplication1
{
public class Class1
{
public static int Main(string[] args)
{
try
{
Outlook.Application oApp = new Outlook.Application();
// Get the MAPI namespace.
Outlook.NameSpace oNS = oApp.GetNamespace("MAPI");
oNS.Logon("email address placeholder", "password placeholder", false, true);
//Get the Inbox folder.
Outlook.MAPIFolder oInbox = oNS.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox);
String user = oNS.CurrentUser.EntryID;
//Get the Items collection in the Inbox folder.
Outlook.Items oItems = oInbox.Items;
Console.WriteLine(oItems.Count);
Outlook.MailItem oMsg = (Outlook.MailItem)oItems.GetFirst();
Console.WriteLine(oMsg.Subject);
Console.WriteLine(oMsg.SenderName);
Console.WriteLine(oMsg.ReceivedTime);
Console.WriteLine(oMsg.Body);
int AttachCnt = oMsg.Attachments.Count;
Console.WriteLine("Attachments: " + AttachCnt.ToString());
if (AttachCnt > 0)
{
for (int i = 1; i <= AttachCnt; i++)
Console.WriteLine(i.ToString() + "-" + oMsg.Attachments[i].DisplayName);
}
for (int i = 0; i < oItems.Count; i++)
{
if (oItems.GetNext() is Outlook.MailItem)
{
oMsg = (Outlook.MailItem)oItems.GetNext();
Console.WriteLine(oMsg.Subject);
Console.WriteLine(oMsg.SenderName);
Console.WriteLine(oMsg.ReceivedTime);
Console.WriteLine(oMsg.Body);
AttachCnt = oMsg.Attachments.Count;
if (AttachCnt > 0)
{
for (int j = 1; j <= AttachCnt; j++)
Console.WriteLine(j.ToString() + "-" + oMsg.Attachments[j].DisplayName);
}
Console.WriteLine("Attachments: " + AttachCnt.ToString());
Console.WriteLine("CURRENT EMAIL # IS: " + i);
}
else
{
oItems.GetNext();
Console.WriteLine("NOT AN EMAIL");
Console.WriteLine("CURRENT EMAIL # IS: " + i);
}
}
oNS.Logoff();
oMsg = null;
oItems = null;
oInbox = null;
oNS = null;
oApp = null;
}
catch (Exception e)
{
Console.WriteLine("{0} Exception caught: ", e);
}
return 0;
}
}
}
Affiche une version minimale du code que vous avez essayé et le résultat de ce code. – ROAR
Ce compte a-t-il été ajouté à Outlook? –
Oui J'ai essayé d'ajouter le compte différent à Outlook mais il est allé encore à mon adresse électronique principale. J'utilise la fonction .logon et je ne suis pas complètement sûr si j'ai le bon format pour les paramètres pour le nom d'utilisateur. Est-ce l'adresse e-mail elle-même ou autre chose? De même, comment exactement le code interagit avec l'application Outlook pour déterminer qui est l'utilisateur? Aurais-je besoin de faire quoi que ce soit à la fin d'Outlook pour permettre l'accès à la boîte de réception? – SoggyBread