Невозможно прочитать электронную почту из Outlook. Net Core 2.2 - PullRequest
0 голосов
/ 06 августа 2020

Я пытаюсь получить непрочитанные письма из 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();
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...