【发布时间】:2013-10-06 03:27:38
【问题描述】:
我正在尝试从我的 c#.net 应用程序发送邮件,我使用了以下代码:
var mailItem = (Outlook.MailItem)oApp.CreateItem(Outlook.OlItemType.olMailItem);
mailItem.Subject = "Error Report from user: " + AuthenticationManager.LoggedInUserName;
mailItem.HTMLBody = "Test email\n"+ReadSignature();
mailItem.To = "test@test.com";
mailItem.Display(true);
邮件未发送,但已添加到发件箱文件夹。我怀疑邮件没有发送,因为 Outlook 没有启动。所以我用谷歌搜索并想出了这个:
var oApp = new Outlook.Application();
Microsoft.Office.Interop.Outlook.NameSpace ns = oApp.GetNamespace("MAPI");
var f = ns.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox);
Thread.Sleep(5000); // a bit of startup grace time.
var mailItem = (Outlook.MailItem)oApp.CreateItem(Outlook.OlItemType.olMailItem);
mailItem.Subject = "Error Report from user: " + AuthenticationManager.LoggedInUserName;
mailItem.HTMLBody = "Test email\n"+ReadSignature();
mailItem.To = "test@test.com";
mailItem.Display(true);
但它再次出现在发件箱文件夹中。我需要启动 Outlook,因为我无法在每个客户端 application.config 中指定 FromMail 属性。有什么想法吗?
【问题讨论】:
-
如果您使用的是 Web 应用程序,那么您可以从 web.config 文件中的邮件进行配置
-
您真的需要这种矫枉过正的手段来发送简单的电子邮件吗?有些类允许在没有 Outlook 的情况下直接发送邮件。