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

时间:2011-05-25 09:51:15

标签: vb.net 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")

1 个答案:

答案 0 :(得分: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 = "test@test.com"

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

'to send
item.Send()

您当然必须引用Outlook库。

此外,根据您的Outlook版本和配置,它可能会生成“第三方应用尝试发送邮件”的各种警告。