前段时间提到SPUtility.SendEmail方法存在部分缺陷,最大的缺陷就是邮件内容2048个字符限制,换成用System.Net.Mail 发送邮件则需要设置密码。在WebPart中设置密码十分不便。今天终于发现一个好方法,如下:
Code
private void SendEmail(string pSubject, string pFrom, string pTo, string pBody)
{
System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage();
message.IsBodyHtml = true;
message.Body = pBody;
message.From = new System.Net.Mail.MailAddress(pFrom);
message.To.Add(pTo);
message.Subject = pSubject;
SPOutboundMailServiceInstance smtpServer = SPContext.Current.Site.WebApplication.OutboundMailServiceInstance;
System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient(smtpServer.Server.Address);
smtp.Send(message);
}
利用传出电子邮件设置的配置信息和System.Net.Mail.SmtpClient 类发送邮件。不需要设置密码即可使用,又摆脱了SPUtility.SendEmail的缺陷。