Skip to main content
 首页 » 编程设计

c#之如何查看邮件是否发送成功或取消

2024年02月06日32开发

我这样创建 Outlook 邮件:

 Outlook.Application outlookApp = new Outlook.Application(); 
 Outlook.MailItem mailItem = (Outlook.MailItem)outlookApp.CreateItem(Outlook.OlItemType.olMailItem); 
 mailItem.Subject = mailSubject; 
 mailItem.To = ""; 
 mailItem.Attachments.Add(totalPath); 
 mailItem.Body = mailBody; 
 mailItem.Importance = Outlook.OlImportance.olImportanceNormal; 
 mailItem.Display(true); 
 //Mail is send succesfully? 

是否可以查询邮件是否发送成功或取消?

当我执行下面的代码时,出现错误

'the item is moved or deleted'

Outlook.Application outlookApp = new Outlook.Application(); 
Outlook.MailItem mailItem = (Outlook.MailItem)outlookApp.CreateItem(Outlook.OlItemType.olMailItem); 
mailItem.Subject = mailSubject; 
mailItem.To = ""; 
mailItem.CC = "EDI.Orders@trust.com"; 
mailItem.Attachments.Add(totalPath); 
mailItem.Body = mailBody; 
mailItem.Importance = Outlook.OlImportance.olImportanceNormal; 
mailItem.Display(true); 
//Mail is send succesfully? 
if (mailItem.Sent) 
{ 
   MessageBox.Show("Sended"); 
} 
else 
{ 
   MessageBox.Show("canceled"); 
} 

错误出现在 mailItem.Sent。

请您参考如下方法:

mailItem.Sent 属性显示电子邮件是否已发送。

此外,您可以附加到 mailItem.Write 事件。 (但要小心 - 也会在保存等时被调用)

mailItem.Write += mailItem_Write; 
 
void mailItem_Write(ref bool Cancel) 
    { 
       //your code... 
    }