2011-05-25 63 views
0

我已經將郵件帳戶配置爲Microsoft Outlook,如果我從Outlook發送郵件完美並且副本存儲在已發送的郵件中,但是當我嘗試從我的vb.net windows應用程序發送的郵件都處於良好的方式發送,但郵件的副本不存儲在已發送的郵件,我怎麼能做到事先都要歸功於如何使用VB.Net在MS Outlook中保存已發郵件中的郵件

我的代碼如下

Dim mail As New MailMessage() 
    mail.From = New MailAddress("[email protected]") 
    mail.To.Add("[email protected]") 
    mail.Subject = "test" 
    mail.Body = "test" 
    Dim smtp As New System.Net.Mail.SmtpClient("smtp.rediffmailpro.com", 25) 
    smtp.EnableSsl = False 
    smtp.Credentials = New System.Net.NetworkCredential("[email protected]", "xyz123") 
    smtp.Send(mail) 
    MsgBox("email sent") 
+0

另見:http://stackoverflow.com/questions/227213/send-email-in-net-with-email-saved-in-users-sent-items – 2011-10-06 16:21:18

回答

0

您正在使用與Outlook分開的System.Net.Mail庫。 Outlook在發送郵件之前,之中或之後並不知道郵件的任何內容。這就是爲什麼「已發送郵件」文件夾中沒有消息。

如果您希望郵件顯示在已發送郵件中,您需要使用Outlook對象庫本身發送郵件。代碼與您發佈的代碼沒有太大區別。這將是這樣的:

Dim o As New Outlook.Application 
Dim item As Outlook.MailItem 
item = o.CreateItem(Outlook.OlItemType.olMailItem) 
item.Subject = "subject etc" 
item.Body = "blah blah" 
item.To = "[email protected]" 

'to preview to user, for him to manually hit send 
item.Display() 

'to send 
item.Send() 

你當然必須引用Outlook庫。

還取決於您的Outlook的版本和配置它可能會生成各種警告,「第三方應用程序試圖發送郵件」。

相關問題