/// 發送郵件
/// </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;
}
}