首先我们要知道我们使用的邮件的主机、端口等信息。本次博客就以QQ邮箱为例子.
第一、你打开邮箱,找到设置,选择账户;在下面找到 “ POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务 ”
第二、开启POP3/SMTP服务
第三步、服务开启之后,就是代码了,具体代码如下
using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Mail; using System.Text; using System.Web; using System.Windows.Forms; namespace Email { class Programs { static void Main(string[] args) { btnEmailCode_Click(); } //获取邮箱验证码 public static void btnEmailCode_Click() { string mailFrom = "************"; //发件人邮箱地址 MailAddress MessageFrom = new MailAddress(mailFrom); //发件人邮箱地址 string mailTo = "************";//收件人地址 string activeCode = Guid.NewGuid().ToString().Substring(0, 6);//生成激活码 string MessageSubject = "******************"; //主题 string MessageBody = "********************";//邮件内容 if (Send(MessageFrom, mailTo, MessageSubject, MessageBody)) { Console.WriteLine("发送邮件成功"); } else { Console.WriteLine("发送邮件失败"); } } public static bool Send(MailAddress MessageFrom, string MessageTo, string MessageSubject, string MessageBody) { MailMessage message = new MailMessage(); message.From = MessageFrom; message.To.Add(MessageTo); //收件人邮箱地址可以是多个以实现群发 message.Subject = MessageSubject; message.Body = MessageBody; message.IsBodyHtml = true; //是否为html格式 message.Priority = MailPriority.High; //发送邮件的优先等级 SmtpClient sc = new SmtpClient(); sc.Host = "smtp.qq.com"; //指定发送邮件的服务器地址或IP sc.Port = 25; //指定发送邮件端口 /* * email :发件人的邮箱账号 * butpgifsvvqebcbf:这个是你发送邮件的一个令牌,你需要在邮箱中申请之后会给你一个这样的令牌(字符串) * **/ sc.Credentials = new System.Net.NetworkCredential("email", "butpgifsvvqebcbf"); //指定登录服务器的用户名和密码(发件人的邮箱登陆密码) try { sc.Send(message); // 发送邮件 return true; } catch (ArgumentNullException ex) { return false; MessageBox.Show(ex.Message); } catch (ArgumentException ex) { return false; MessageBox.Show(ex.Message); } //已释放此对象。 catch (ObjectDisposedException ex) { return false; MessageBox.Show(ex.Message); } catch (InvalidOperationException ex) { return false; MessageBox.Show(ex.Message); } catch (SmtpFailedRecipientException ex) { return false; MessageBox.Show(ex.Message); } catch (SmtpException ex) { return false; MessageBox.Show(ex.Message); } catch (Exception ex) { return false; MessageBox.Show(ex.Message); } } private static void SendCompletedCallback(object sender, System.ComponentModel.AsyncCompletedEventArgs e) { if (e.Cancelled) //邮件发送被取消 { MessageBox.Show("发送被取消!"); } if (e.Error != null) //邮件发送失败 { MessageBox.Show("发送失败!"); } else //发送成功 { MessageBox.Show("发送成功!"); } } } }
注意:
sc.Host = "smtp.qq.com"; //指定发送邮件的服务器地址或IP sc.Port = 25; //指定发送邮件端口
这样你就可以发送成邮件了