C#发送邮件三种方法,Localhost,SMTP,SSL-SMTP
通过.Net FrameWork 2.0下提供的“System.Net.Mail”可以轻松的实现,本文列举了3种途径来发送:
1.通过Localhost;
2.通过普通SMTP;
3.通过SSL的SMTP;
下面一个一个来说:
1.通过LocalHost
- public void SendMailLocalhost()
- {
- System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();
- msg.To.Add("a@a.com");
- msg.To.Add("b@b.com");
- msg.CC.Add(c@c.com);
- msg.From = new MailAddress("a@a.com", "AlphaWu", System.Text.Encoding.UTF8);
- msg.Subject = "这是测试邮件";
- msg.SubjectEncoding = System.Text.Encoding.UTF8;
- msg.Body = "邮件内容";
- msg.BodyEncoding = System.Text.Encoding.UTF8;
- msg.IsBodyHtml = false;
- msg.Priority = MailPriority.High;
-
- SmtpClient client = new SmtpClient();
- client.Host = "localhost";
- object userState = msg;
- try
- {
- client.SendAsync(msg, userState);
- MessageBox.Show("发送成功");
- }
- catch (System.Net.Mail.SmtpException ex)
- {
- MessageBox.Show(ex.Message, "发送邮件出错");
- }
- }
- public void SendMailLocalhost()
- {
- System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();
- msg.To.Add("a@a.com");
- msg.To.Add("b@b.com");
- msg.CC.Add(c@c.com);
- msg.From = new MailAddress("a@a.com", "AlphaWu", System.Text.Encoding.UTF8);
- msg.Subject = "这是测试邮件";
- msg.SubjectEncoding = System.Text.Encoding.UTF8;
- msg.Body = "邮件内容";
- msg.BodyEncoding = System.Text.Encoding.UTF8;
- msg.IsBodyHtml = false;
- msg.Priority = MailPriority.High;
-
- SmtpClient client = new SmtpClient();
- client.Host = "localhost";
- object userState = msg;
- try
- {
- client.SendAsync(msg, userState);
- MessageBox.Show("发送成功");
- }
- catch (System.Net.Mail.SmtpException ex)
- {
- MessageBox.Show(ex.Message, "发送邮件出错");
- }
- }
- public void SendMailLocalhost()
- {
- System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();
- msg.To.Add("a@a.com");
- msg.To.Add("b@b.com");
- msg.CC.Add(c@c.com);
- msg.From = new MailAddress("a@a.com", "AlphaWu", System.Text.Encoding.UTF8);
- msg.Subject = "这是测试邮件";
- msg.SubjectEncoding = System.Text.Encoding.UTF8;
- msg.Body = "邮件内容";
- msg.BodyEncoding = System.Text.Encoding.UTF8;
- msg.IsBodyHtml = false;
- msg.Priority = MailPriority.High;
-
- SmtpClient client = new SmtpClient();
- client.Host = "localhost";
- object userState = msg;
- try
- {
- client.SendAsync(msg, userState);
- MessageBox.Show("发送成功");
- }
- catch (System.Net.Mail.SmtpException ex)
- {
- MessageBox.Show(ex.Message, "发送邮件出错");
- }
- }
2.通过普通SMTP
- public void SendMailUseZj()
- {
- System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();
- msg.To.Add(a@a.com);
- msg.To.Add(b@b.com);
- msg.CC.Add("c@c.com");
- msg.From = new MailAddress("a@a.com", "AlphaWu", System.Text.Encoding.UTF8);
- msg.Subject = "这是测试邮件";
- msg.SubjectEncoding = System.Text.Encoding.UTF8;
- msg.Body = "邮件内容";
- msg.BodyEncoding = System.Text.Encoding.UTF8;
- msg.IsBodyHtml = false;
- msg.Priority = MailPriority.High;
-
- SmtpClient client = new SmtpClient();
- client.Credentials = new System.Net.NetworkCredential("username@zj.com", "userpass");
- client.Host = "smtp.zj.com";
- object userState = msg;
- try
- {
- client.SendAsync(msg, userState);
- MessageBox.Show("发送成功");
- }
- catch (System.Net.Mail.SmtpException ex)
- {
- MessageBox.Show(ex.Message, "发送邮件出错");
- }
- }
- public void SendMailUseZj()
- {
- System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();
- msg.To.Add(a@a.com);
- msg.To.Add(b@b.com);
- msg.CC.Add("c@c.com");
- msg.From = new MailAddress("a@a.com", "AlphaWu", System.Text.Encoding.UTF8);
- msg.Subject = "这是测试邮件";
- msg.SubjectEncoding = System.Text.Encoding.UTF8;
- msg.Body = "邮件内容";
- msg.BodyEncoding = System.Text.Encoding.UTF8;
- msg.IsBodyHtml = false;
- msg.Priority = MailPriority.High;
-
- SmtpClient client = new SmtpClient();
- client.Credentials = new System.Net.NetworkCredential("username@zj.com", "userpass");
- client.Host = "smtp.zj.com";
- object userState = msg;
- try
- {
- client.SendAsync(msg, userState);
- MessageBox.Show("发送成功");
- }
- catch (System.Net.Mail.SmtpException ex)
- {
- MessageBox.Show(ex.Message, "发送邮件出错");
- }
- }
- public void SendMailUseZj()
- {
- System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();
- msg.To.Add(a@a.com);
- msg.To.Add(b@b.com);
- msg.CC.Add("c@c.com");
- msg.From = new MailAddress("a@a.com", "AlphaWu", System.Text.Encoding.UTF8);
- msg.Subject = "这是测试邮件";
- msg.SubjectEncoding = System.Text.Encoding.UTF8;
- msg.Body = "邮件内容";
- msg.BodyEncoding = System.Text.Encoding.UTF8;
- msg.IsBodyHtml = false;
- msg.Priority = MailPriority.High;
-
- SmtpClient client = new SmtpClient();
- client.Credentials = new System.Net.NetworkCredential("username@zj.com", "userpass");
- client.Host = "smtp.zj.com";
- object userState = msg;
- try
- {
- client.SendAsync(msg, userState);
- MessageBox.Show("发送成功");
- }
- catch (System.Net.Mail.SmtpException ex)
- {
- MessageBox.Show(ex.Message, "发送邮件出错");
- }
- }
上述方法不适用于所有SMTP,经测试zj.com可以,而smtp.163.com不行
3.通过SSL的SMTP
- public void SendMailUseGmail()
- {
- System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();
- msg.To.Add(a@a.com);
- msg.To.Add(b@b.com);
- msg.CC.Add(c@c.com);
- msg.From = new MailAddress("a@a.com", "AlphaWu", System.Text.Encoding.UTF8);
- msg.Subject = "这是测试邮件";
- msg.SubjectEncoding = System.Text.Encoding.UTF8;
- msg.Body = "邮件内容";
- msg.BodyEncoding = System.Text.Encoding.UTF8;
- msg.IsBodyHtml = false;
- msg.Priority = MailPriority.High;
- SmtpClient client = new SmtpClient();
- client.Credentials = new System.Net.NetworkCredential("username@gmail.com", "password");
- client.Port = 587;
- client.Host = "smtp.gmail.com";
- client.EnableSsl = true;
- object userState = msg;
- try
- {
- client.SendAsync(msg, userState);
- MessageBox.Show("发送成功");
- }
- catch (System.Net.Mail.SmtpException ex)
- {
- MessageBox.Show(ex.Message, "发送邮件出错");
- }
- }
- public void SendMailUseGmail()
- {
- System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();
- msg.To.Add(a@a.com);
- msg.To.Add(b@b.com);
- msg.CC.Add(c@c.com);
- msg.From = new MailAddress("a@a.com", "AlphaWu", System.Text.Encoding.UTF8);
- msg.Subject = "这是测试邮件";
- msg.SubjectEncoding = System.Text.Encoding.UTF8;
- msg.Body = "邮件内容";
- msg.BodyEncoding = System.Text.Encoding.UTF8;
- msg.IsBodyHtml = false;
- msg.Priority = MailPriority.High;
- SmtpClient client = new SmtpClient();
- client.Credentials = new System.Net.NetworkCredential("username@gmail.com", "password");
- client.Port = 587;
- client.Host = "smtp.gmail.com";
- client.EnableSsl = true;
- object userState = msg;
- try
- {
- client.SendAsync(msg, userState);
- MessageBox.Show("发送成功");
- }
- catch (System.Net.Mail.SmtpException ex)
- {
- MessageBox.Show(ex.Message, "发送邮件出错");
- }
- }
- public void SendMailUseGmail()
- {
- System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();
- msg.To.Add(a@a.com);
- msg.To.Add(b@b.com);
- msg.CC.Add(c@c.com);
- msg.From = new MailAddress("a@a.com", "AlphaWu", System.Text.Encoding.UTF8);
- msg.Subject = "这是测试邮件";
- msg.SubjectEncoding = System.Text.Encoding.UTF8;
- msg.Body = "邮件内容";
- msg.BodyEncoding = System.Text.Encoding.UTF8;
- msg.IsBodyHtml = false;
- msg.Priority = MailPriority.High;
- SmtpClient client = new SmtpClient();
- client.Credentials = new System.Net.NetworkCredential("username@gmail.com", "password");
- client.Port = 587;
- client.Host = "smtp.gmail.com";
- client.EnableSsl = true;
- object userState = msg;
- try
- {
- client.SendAsync(msg, userState);
- MessageBox.Show("发送成功");
- }
- catch (System.Net.Mail.SmtpException ex)
- {
- MessageBox.Show(ex.Message, "发送邮件出错");
- }
- }
通过Gmail来发送邮件,成功率极高,几乎都可以发到,推荐使用。
C#发送邮件三种方法,Localhost,SMTP,SSL-SMTP
原文:https://www.cnblogs.com/ztf20/p/9552611.html