總是在我從Outlook中請求電子郵件時,使用Office365時,會在發送郵件後引發COM-Execption。我真的不知道爲什麼... 錯誤:請求使用MAPI的電子郵件時的C#限制錯誤
System.Runtime.InteropServices.COMException (0xBFE40305):
Die Anzahl der Elemente, die gleichzeitig geöffnet werden können, wurde vom Serveradministrator begrenzt.
Schließen Sie zunächst geöffnete Nachrichten, oder entfernen Sie Anhänge und Bilder von
ungesendeten Nachrichten, die Sie gerade verfassen.
bei Microsoft.Office.Interop.Outlook._MailItem.get_Recipients()
.....
對於不說德語的人來說,它意味着: 元素的計數至極可以在同一時間打開,被限制服務器管理員(....)
我不知道任何關於這種限制,以及我可以在Google或MSDN上找到的解決方案不幫助以太。
它看起來像當程序試圖獲取電子郵件收件人時崩潰。這裏順便說一下,我如何努力獲得Recipiants:
foreach (var item in SelectedFolder.Items.Restrict(filter))
{
Outlook.MailItem mail = item as Outlook.MailItem;
if (mail != null)
{
if (mail.Recipients.Count > 0)
{
string caption = mail.Subject;
string MAIL = mail.Recipients[1].PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x39FE001E"); //<--- CRASH HERE
我真不明白,這可怎麼發生的,因爲據我所知,當我選擇從Outlook電子郵件,他們只是得到「打開「本地......所以我不能得到,如何」服務器限制「可以訪問到這一點。
問候
謝謝你的合格的awnser。 我將更正我的代碼並告訴我的客戶嘗試新版本。 之後,我會告訴你,如果這個解決方案工作正常。 我是否也必須釋放_mail.Recipients_? 那就是我做的:(看下一條評論) – TheVWUP
我無法發佈代碼。 但是我在獲取SMTP地址後發佈了_mail.Recipients_,然後發佈了for(int I = 1;)...中的當前郵件對象,之後我發佈了空洞收集。 – TheVWUP
請顯示您的最新代碼。不要使用類似Marshal.ReleaseComObject(MailItem.Recipients)的東西 - 這是沒有意義的:你得到一個新的COM對象並立即釋放它。將MailItem.Recipients讀取到專用變量中,使用它,然後使用Marshal.ReleaseComObject釋放它。 –