/// <summary>
/// 发送邮件
/// </summary>
/// <param name="to">目的邮箱地址</param>
/// <param name="subject">邮件主题</param>
/// <param name="body">邮件内容</param>
/// <returns></returns>
public bool SendEmail(string to, string subject, string body)
{
System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient(Smtp服务器);
client.UseDefaultCredentials = false;
client.Credentials = new System.Net.NetworkCredential(用户名, 密码);//比如用szmorning.com.cn的用户名和密码
client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.PickupDirectoryFromIis;//重点在这里,有三个可选的,之前是用Network发送,老是验证失败,改为PickupDirectoryFromIis本地IIS就OK了
//创建MailMessage对象,参数分别为发件人地址,信件标题,信件正文
System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage(getFrom(), to, subject, body);
message.BodyEncoding = System.Text.Encoding.Default; //编码
message.IsBodyHtml = true; //是否是HTML代码
client.Port = 25;
try
{
client.Send(message); //发送
log.Info("发送电子邮件成功");
return true;
}
catch (System.ArgumentNullException ex)
{
log.Info("1.发送电子邮件失败:" + ex.Message);
log.Info("1.发送电子邮件失败:" + ex.HelpLink);
log.Info("1.发送电子邮件失败:" + ex.Source);
log.Info("1.发送电子邮件失败:" + ex.StackTrace);
log.Info("1.发送电子邮件失败:" + ex.TargetSite);
Console.WriteLine(ex.Message);
return false;
}
catch (System.ArgumentOutOfRangeException ex)
{
log.Info("2.发送电子邮件失败:" + ex.Message);
log.Info("2.发送电子邮件失败:" + ex.HelpLink);
log.Info("2.发送电子邮件失败:" + ex.Source);
log.Info("2.发送电子邮件失败:" + ex.StackTrace);
log.Info("2.发送电子邮件失败:" + ex.TargetSite);
Console.WriteLine(ex.Message);
return false;
}
catch (System.InvalidOperationException ex)
{
log.Info("3.发送电子邮件失败:" + ex.Message);
log.Info("3.发送电子邮件失败:" + ex.HelpLink);
log.Info("3.发送电子邮件失败:" + ex.Source);
log.Info("3.发送电子邮件失败:" + ex.StackTrace);
log.Info("3.发送电子邮件失败:" + ex.TargetSite);
Console.WriteLine(ex.Message);
return false;
}
catch (System.Net.Mail.SmtpException ex)
{
log.Info("4.发送电子邮件失败:" + ex.Message);
log.Info("4.发送电子邮件失败:" + ex.HelpLink);
log.Info("4.发送电子邮件失败:" + ex.Source);
log.Info("4.发送电子邮件失败:" + ex.StackTrace);
log.Info("4.发送电子邮件失败:" + ex.TargetSite);
Console.WriteLine(ex.Message);
return false;
}
/// 发送邮件
/// </summary>
/// <param name="to">目的邮箱地址</param>
/// <param name="subject">邮件主题</param>
/// <param name="body">邮件内容</param>
/// <returns></returns>
public bool SendEmail(string to, string subject, string body)
{
System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient(Smtp服务器);
client.UseDefaultCredentials = false;
client.Credentials = new System.Net.NetworkCredential(用户名, 密码);//比如用szmorning.com.cn的用户名和密码
client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.PickupDirectoryFromIis;//重点在这里,有三个可选的,之前是用Network发送,老是验证失败,改为PickupDirectoryFromIis本地IIS就OK了
//创建MailMessage对象,参数分别为发件人地址,信件标题,信件正文
System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage(getFrom(), to, subject, body);
message.BodyEncoding = System.Text.Encoding.Default; //编码
message.IsBodyHtml = true; //是否是HTML代码
client.Port = 25;
try
{
client.Send(message); //发送
log.Info("发送电子邮件成功");
return true;
}
catch (System.ArgumentNullException ex)
{
log.Info("1.发送电子邮件失败:" + ex.Message);
log.Info("1.发送电子邮件失败:" + ex.HelpLink);
log.Info("1.发送电子邮件失败:" + ex.Source);
log.Info("1.发送电子邮件失败:" + ex.StackTrace);
log.Info("1.发送电子邮件失败:" + ex.TargetSite);
Console.WriteLine(ex.Message);
return false;
}
catch (System.ArgumentOutOfRangeException ex)
{
log.Info("2.发送电子邮件失败:" + ex.Message);
log.Info("2.发送电子邮件失败:" + ex.HelpLink);
log.Info("2.发送电子邮件失败:" + ex.Source);
log.Info("2.发送电子邮件失败:" + ex.StackTrace);
log.Info("2.发送电子邮件失败:" + ex.TargetSite);
Console.WriteLine(ex.Message);
return false;
}
catch (System.InvalidOperationException ex)
{
log.Info("3.发送电子邮件失败:" + ex.Message);
log.Info("3.发送电子邮件失败:" + ex.HelpLink);
log.Info("3.发送电子邮件失败:" + ex.Source);
log.Info("3.发送电子邮件失败:" + ex.StackTrace);
log.Info("3.发送电子邮件失败:" + ex.TargetSite);
Console.WriteLine(ex.Message);
return false;
}
catch (System.Net.Mail.SmtpException ex)
{
log.Info("4.发送电子邮件失败:" + ex.Message);
log.Info("4.发送电子邮件失败:" + ex.HelpLink);
log.Info("4.发送电子邮件失败:" + ex.Source);
log.Info("4.发送电子邮件失败:" + ex.StackTrace);
log.Info("4.发送电子邮件失败:" + ex.TargetSite);
Console.WriteLine(ex.Message);
return false;
}
}