自动车衣吧:C#发送Email邮件的方法解析 - 51CTO.COM

来源:百度文库 编辑:九乡新闻网 时间:2024/07/14 03:06:15
  • C#发送Email邮件的方法解析

  • http://developer.51cto.com  2009-08-21 09:44  Linux联盟  Linux联盟  我要评论(0)
    本文介绍了C#发送Email邮件的三种方法,即通过Localhost,通过普通SMTP,通过SSL的SMTP。

    C#发送Email邮件方法之一:通过LocalHost 

     

     

            
    1. public void SendMailLocalhost()   
    2.  ...{   
    3.  System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();   
    4.  msg.To.Add("a@a.com");   
    5.  msg.To.Add("b@b.com");   
    6.  /**//*   
    7.  * msg.To.Add("b@b.com");   
    8.  * msg.To.Add("b@b.com");   
    9.  * msg.To.Add("b@b.com");可以发送给多人   
    10.  */   
    11. msg.CC.Add("c@c.com");   
    12.  /**//*   
    13.  * msg.CC.Add("c@c.com");   
    14.  * msg.CC.Add("c@c.com");可以抄送给多人   
    15.  */   
    16.  msg.From = new MailAddress("a@a.com""AlphaWu", System.Text.Encoding.UTF8);   
    17.  /**//* 上面3个参数分别是发件人地址(可以随便写),发件人姓名,编码*/   
    18.  msg.Subject = "这是测试邮件";//邮件标题   
    19.  msg.SubjectEncoding = System.Text.Encoding.UTF8;//邮件标题编码   
    20.  msg.Body = "邮件内容";//邮件内容   
    21.  msg.BodyEncoding = System.Text.Encoding.UTF8;//邮件内容编码   
    22.  msg.IsBodyHtml = false;//是否是HTML邮件   
    23.  msg.Priority = MailPriority.High;//邮件优先级   
    24.    
    25.  SmtpClient client = new SmtpClient();   
    26.  client.Host = "localhost";   
    27.  object userState = msg;   
    28.  try   
    29.  ...{   
    30.  client.SendAsync(msg, userState);   
    31.  //简单一点儿可以client.Send(msg);   
    32.  MessageBox.Show("发送成功");   
    33.  }   
    34.  catch (System.Net.Mail.SmtpException ex)   
    35.  ...{   
    36.  MessageBox.Show(ex.Message, "发送邮件出错");   
    37.  }   
    38.  }  

    C#发送Email邮件方法之二:通过普通SMTP 

     

     

            
    1. public void SendMailUseZj()   
    2.  ...{   
    3.  System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();   
    4.  msg.To.Add("a@a.com");   
    5.  msg.To.Add("b@b.com");   
    6.  /**//*   
    7.  * msg.To.Add("b@b.com");   
    8.  * msg.To.Add("b@b.com");   
    9.  * msg.To.Add("b@b.com");可以发送给多人   
    10.  */   
    11.  msg.CC.Add("c@c.com");   
    12.  /**//*   
    13.  * msg.CC.Add("c@c.com");   
    14.  * msg.CC.Add("c@c.com");可以抄送给多人   
    15.  */   
    16.  msg.From = new MailAddress("a@a.com""AlphaWu", System.Text.Encoding.UTF8);   
    17.  /**//* 上面3个参数分别是发件人地址(可以随便写),发件人姓名,编码*/   
    18.  msg.Subject = "这是测试邮件";//邮件标题   
    19.  msg.SubjectEncoding = System.Text.Encoding.UTF8;//邮件标题编码   
    20.  msg.Body = "邮件内容";//邮件内容   
    21.  msg.BodyEncoding = System.Text.Encoding.UTF8;//邮件内容编码   
    22.  msg.IsBodyHtml = false;//是否是HTML邮件   
    23.  msg.Priority = MailPriority.High;//邮件优先级   
    24.    
    25.  SmtpClient client = new SmtpClient();   
    26.  client.Credentials = new System.Net.NetworkCredential("username@zj.com""userpass");   
    27.  //在zj.com注册的邮箱和密码   
    28.  client.Host = "smtp.zj.com";   
    29.  object userState = msg;   
    30.  try   
    31.  ...{   
    32.  client.SendAsync(msg, userState);   
    33.  //简单一点儿可以client.Send(msg);   
    34.  MessageBox.Show("发送成功");   
    35.  }   
    36.  catch (System.Net.Mail.SmtpException ex)   
    37.  ...{   
    38.  MessageBox.Show(ex.Message, "发送邮件出错");   
    39.  }   
    40.  }  
    上述方法不适用于所有SMTP,经测试zj.com可以,而smtp.163.com不行 

     

    C#发送Email邮件方法之三:通过SSL的SMTP 

     

            
    1. public void SendMailUseGmail()   
    2.  ...{   
    3.  System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();   
    4.  msg.To.Add("a@a.com");   
    5.  msg.To.Add("b@b.com");   
    6.  /**//*   
    7.  * msg.To.Add("b@b.com");   
    8.  * msg.To.Add("b@b.com");   
    9.  * msg.To.Add("b@b.com");可以发送给多人   
    10.  */   
    11.  msg.CC.Add("c@c.com");   
    12.  /**//*   
    13.  * msg.CC.Add("c@c.com");   
    14.  * msg.CC.Add("c@c.com");可以抄送给多人   
    15.  */   
    16.  msg.From = new MailAddress("a@a.com""AlphaWu", System.Text.Encoding.UTF8);   
    17.  /**//* 上面3个参数分别是发件人地址(可以随便写),发件人姓名,编码*/   
    18.  msg.Subject = "这是测试邮件";//邮件标题   
    19.  msg.SubjectEncoding = System.Text.Encoding.UTF8;//邮件标题编码   
    20.  msg.Body = "邮件内容";//邮件内容   
    21.  msg.BodyEncoding = System.Text.Encoding.UTF8;//邮件内容编码   
    22.  msg.IsBodyHtml = false;//是否是HTML邮件   
    23.  msg.Priority = MailPriority.High;//邮件优先级   
    24.    
    25.  SmtpClient client = new SmtpClient();   
    26.  client.Credentials = new System.Net.NetworkCredential("username@gmail.com""password");   
    27.  //上述写你的GMail邮箱和密码   
    28.  client.Port = 587;//Gmail使用的端口   
    29.  client.Host = "smtp.gmail.com";   
    30.  client.EnableSsl = true;//经过ssl加密   
    31.  object userState = msg;   
    32.  try   
    33.  ...{   
    34.  client.SendAsync(msg, userState);   
    35.  //简单一点儿可以client.Send(msg);   
    36.  MessageBox.Show("发送成功");   
    37.  }   
    38.  catch (System.Net.Mail.SmtpException ex)   
    39.  ...{   
    40.  MessageBox.Show(ex.Message, "发送邮件出错");   
    41.  }   
    42.  }  
    通过Gmail来发送邮件,成功率极高,几乎都可以发到,推荐使用。