总是在我从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释放它。 –