Я пытаюсь получить непрочитанные письма из Outlook с помощью Microsoft.Office.Interop.Outlook в. Net core 2.2, но эта ошибка произошла при чтении.
IDispatch и IDispatchEx не поддерживаются
Вот мой код publi c class OutLookEmails {publi c string EmailFrom {get; устанавливать; } publi c строка EmailSubject {get; устанавливать; } publi c строка EmailBody {get; устанавливать; }
public List<OutLookEmails> ReadMailItems()
{
Application OutlookApplication = null;
NameSpace OutlooknameSpace = null;
MAPIFolder InboxFolder = null;
Items mailItems = null;
List<OutLookEmails> ListEmailDetails = new List<OutLookEmails>();
OutLookEmails EmailDetails;
try
{
OutlookApplication = new Application();
OutlooknameSpace = OutlookApplication.GetNamespace("MAPI");
InboxFolder = OutlooknameSpace.GetDefaultFolder(OlDefaultFolders.olFolderInbox);
mailItems = InboxFolder.Items;
foreach (MailItem item in mailItems)
{
EmailDetails = new OutLookEmails();
EmailDetails.EmailFrom = item.SenderEmailAddress;
EmailDetails.EmailSubject = item.Subject;
EmailDetails.EmailBody = item.Body;
ListEmailDetails.Add(EmailDetails);
ReleaseComObject(item);
}
}
catch (s.Exception Ex)
{
}
finally
{
ReleaseComObject(mailItems);
ReleaseComObject(InboxFolder);
ReleaseComObject(OutlooknameSpace);
ReleaseComObject(OutlookApplication);
}
return ListEmailDetails;
}
}
private static void ReleaseComObject(Object obj)
{
if (obj != null)
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
obj = null;
}
}
public IActionResult GetMail()
{
OutLookEmails em = new OutLookEmails();
var Mails = em.ReadMailItems();
foreach (var Mail in Mails)
{
}
// return View();
}