我已经实现了一个通过.Net SmtpClient发送电子邮件的服务器。 邮件发送代码如下:
private static MailMessage SendMail(string to, string subject, string body)
{
MailMessage mailToSend = new MailMessage();
mailToSend.Body = body;
mailToSend.Subject = subject;
mailToSend.IsBodyHtml = true;
mailToSend.To.Add(to);
try
{
mailClient.Send(mailToSend);
}
catch (Exception ex)
{
//Log data...
}
mailToSend.Dispose();
}
并且在Web.config中我放了邮件的凭据,就像那样:
<configuration>
<system.net>
<mailSettings>
<smtp from="autoemail@mailserver.org">
<network host="smtp.mailserver.org" password="pswdpswd" port="25" userName="autoemail" clientDomain="the-domain" enableSsl="true" />
</smtp>
</mailSettings>
</system.net>
</configuration>
电子邮件成功发送,一切正常但是当我登录交换服务器中的电子邮件用户时(例如通过Outlook Web-App)我无法看到通过SmtpClient发送的邮件(通过代码)已发送的项目文件夹。
如何在此文件夹中保留已发送邮件的副本? 谢谢!
答案 0 :(得分:14)
它们不会记录在已发送的项目中,因为它仅使用SMTP级别的用户帐户发送,它并不真正使用邮箱发送电子邮件。
您唯一的选择是不使用SmtpClient
并使用Exchange API发送邮件。
从他们的样本中引用:
ExchangeService service = new ExchangeService();
service.AutodiscoverUrl("youremailaddress@yourdomain.com");
EmailMessage message = new EmailMessage(service);
message.Subject = subjectTextbox.Text;
message.Body = bodyTextbox.Text;
message.ToRecipients.Add(recipientTextbox.Text);
message.Save();
message.SendAndSaveCopy();