如何使用VB.Net在MS Outlook中的“已发送邮件”中保存邮件

问题描述

|| 我已经配置了我的邮件帐户到Microsoft Outlook,如果我从Outlook发送邮件,它运行的很好,并且副本存储在已发送的邮件中,但是当我尝试从vb.net Windows应用程序发送邮件时,邮件的发送方式很好,但是邮件副本未存储在已发送邮件中,请问我该如何提前实现 我的代码如下
 Dim mail As New MailMessage()
    mail.From = New MailAddress(\"mail1@test.in\")
    mail.To.Add(\"mail2@test.in\")
    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(\"mail1@test.in\",\"xyz123\")
    smtp.Send(mail)
    MsgBox(\"email sent\")
    

解决方法

您正在使用独立于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 = \"test@test.com\"

\'to preview to user,for him to manually hit send
item.Display()
要么
\'to send
item.Send()
您当然必须引用Outlook库。 另外,根据您的Outlook版本和配置,它可能会生成各种警告,说明“第三方应用程序正在尝试发送邮件”。     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...