![](/img/trans.png)
[英]How to invoke a method with (Outlook.Application application) as parameter in C#?
[英]Sending mail with Outlook.Application C#
我正在嘗試從我的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屬性。 有任何想法嗎?
您需要調用MailItem.Send
方法:
mailItem.Send();
嘗試使用Namespace.SyncObjects集合或Namespace.SendAndReceive方法來啟動同步。
請注意,消息提交是異步過程,因此您需要保留對Namespace對象和SyncObject的引用(如果正在使用它),直到實際發送消息為止。
檢查此答案是否有類似問題-它包含無需使用的解決方案
Thread.Sleep(5000)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.