• C#发送邮件三种方法,Localhost,SMTP,SSL-SMTP


    C#发送邮件三种方法,Localhost,SMTP,SSL-SMTP 
    通过.Net FrameWork 2.0下提供的“System.Net.Mail”可以轻松的实现,本文列举了3种途径来发送: 

    1.通过Localhost; 
    2.通过普通SMTP; 
    3.通过SSL的SMTP; 

    下面一个一个来说: 

    1.通过LocalHost 

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


    2.通过普通SMTP 

    C#代码 复制代码 收藏代码
    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. }  
    [c#] view plain copy
     
     
    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. }  
    [c#] view plain copy
     
    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不行 


    3.通过SSL的SMTP 

    C#代码 复制代码 收藏代码
    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. SmtpClient client = new SmtpClient();    
    25. client.Credentials = new System.Net.NetworkCredential("username@gmail.com", "password");    
    26. //上述写你的GMail邮箱和密码    
    27. client.Port = 587;//Gmail使用的端口    
    28. client.Host = "smtp.gmail.com";    
    29. client.EnableSsl = true;//经过ssl加密    
    30. object userState = msg;    
    31. try    
    32. {    
    33. client.SendAsync(msg, userState);    
    34. //简单一点儿可以client.Send(msg);    
    35. MessageBox.Show("发送成功");    
    36. }    
    37. catch (System.Net.Mail.SmtpException ex)    
    38. {    
    39. MessageBox.Show(ex.Message, "发送邮件出错");    
    40. }    
    41. }  
    [c#] view plain copy
     
     
    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. SmtpClient client = new SmtpClient();   
    25. client.Credentials = new System.Net.NetworkCredential("username@gmail.com", "password");   
    26. //上述写你的GMail邮箱和密码   
    27. client.Port = 587;//Gmail使用的端口   
    28. client.Host = "smtp.gmail.com";   
    29. client.EnableSsl = true;//经过ssl加密   
    30. object userState = msg;   
    31. try   
    32. {   
    33. client.SendAsync(msg, userState);   
    34. //简单一点儿可以client.Send(msg);   
    35. MessageBox.Show("发送成功");   
    36. }   
    37. catch (System.Net.Mail.SmtpException ex)   
    38. {   
    39. MessageBox.Show(ex.Message, "发送邮件出错");   
    40. }   
    41. }  
    [c#] view plain copy
     
    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. SmtpClient client = new SmtpClient();   
    25. client.Credentials = new System.Net.NetworkCredential("username@gmail.com", "password");   
    26. //上述写你的GMail邮箱和密码   
    27. client.Port = 587;//Gmail使用的端口   
    28. client.Host = "smtp.gmail.com";   
    29. client.EnableSsl = true;//经过ssl加密   
    30. object userState = msg;   
    31. try   
    32. {   
    33. client.SendAsync(msg, userState);   
    34. //简单一点儿可以client.Send(msg);   
    35. MessageBox.Show("发送成功");   
    36. }   
    37. catch (System.Net.Mail.SmtpException ex)   
    38. {   
    39. MessageBox.Show(ex.Message, "发送邮件出错");   
    40. }   
    41. }  


    通过Gmail来发送邮件,成功率极高,几乎都可以发到,推荐使用。

  • 相关阅读:
    MVC5 Controller构造方法获取User为空解决方法
    js删除Array数组中的某个元素
    VS2015 工具箱 保存位置
    Mapper 赋值对应实体属性
    cookieHelper
    python3练习100题——007
    python3练习100题——006
    python3练习100题——005
    python3练习100题——004
    python3练习100题——003
  • 原文地址:https://www.cnblogs.com/ztf20/p/9552611.html
Copyright © 2020-2023  润新知