1

我正在尝试向我的同事发送邮件,但在第一封邮件之后,应用程序崩溃了。我收到这条消息

COMException 未被用户代码处理。 “该项目已被移动或删除。”

private void SendMail()
{
    var usersEmailAddresses = Factory.Users.List(); // .List() lists all the data from the Users table.

    Application OutlookApplication = new Application();
    MailItem OutlookMail = (MailItem)OutlookApplication.CreateItem(OlItemType.olMailItem);

    OutlookMail.Subject = @"TEST/Ushqimi i caktuar per sot";

    MailBody //region, here I assign the MailBody Text.

    for (int index = 0; index < usersEmailAddresses.Count; index++)
    {
        OutlookMail.To = usersEmailAddresses[index].Email;  //Here is where I get the exception, AFTER trying to assign the second email.

        if (usersEmailAddresses[index].RecieveEmail && !usersEmailAddresses[index].IsOnVacation)
        {
            ((_MailItem)OutlookMail).Send();
        }
    }
}

我究竟做错了什么?有什么建议么?

4

2 回答 2

4
MailItem OutlookMail = (MailItem)OutlookApplication.CreateItem(OlItemType.olMailItem);

您正在创建mail item循环的外部。它需要在循环内创建,因为一旦您发送OutlookMail它就不再存在,因此您需要一个新的邮件对象。

于 2013-08-26T07:52:52.943 回答
2

我认为错误消息“该项目已被移动或删除”是告诉您邮件已发送,因此您不应更改其“收件人”并再次发送。请尝试在for循环中创建MailItem,或者在发送邮件之前将所有地址添加到邮件项中。

于 2013-08-26T07:52:38.863 回答