我有一个用于发送电子邮件的C#
应用程序。Microsoft.Office.Interop.Outlook
一切正常,我在下面附上了我的部分代码:
// Create the Outlook application.
Outlook.Application oApp = new Outlook.Application();
// Create a new mail item.
Outlook.MailItem oMsg = (Outlook.MailItem)oApp.CreateItem(Outlook.OlItemType.olMailItem);
// Add email info text.
oMsg.HTMLBody = m_eMailBody;
oMsg.Subject = m_mailSubject;
// Add a recipient.
Outlook.Recipients oRecips = (Outlook.Recipients)oMsg.Recipients;
Outlook.Recipient oRecip = (Outlook.Recipient)oRecips.Add(hostEmail);
oRecip.Resolve();
// Send E-Mail via Outlook.
try
{
((Outlook._MailItem)oMsg).Send();
}
catch (Exception ex)
{
...
一旦Send()
被调用,可能会发生两件事:
- 如果 Internet 连接可用,邮件将实际发送。
- 如果没有 Internet 连接,邮件将存储在 Outlook 发件箱中。我想知道这一点,以便通知用户,我该怎么办?
我尝试使用(Outlook._MailItem)oMsg).Sent
,但它只是抛出异常。有什么方法可以真正找出电子邮件是否真的发送过,有什么想法吗?