发送邮件的关键点在于邮箱服务器地址是否一致
//smtp 服务器地址,咨询 smtp 提供商,例如 smtp.126.net 这种格式,端口和服务器地址是配套的,一般是 465 或者 25 SmtpClient smtpClient = new SmtpClient("smtp.xxx.com", 465); smtpClient.Credentials = new NetworkCredential("用户名", "密码"); //仅赋值必填字段 var mailMessage = new MailMessage("发送人邮箱", "收件人邮箱") { Sender = new MailAddress("发送方邮箱"), Subject = "邮件标题", Body = "邮件正文", IsBodyHtml = true,//有不需要发送 html 的吗? }; try { #region 以下方式三选一 //同步发送,发送完了要么走异常,要么成功 smtpClient.Send(mailMessage); //异步发送 smtpClient.SendCompleted += SmtpClient_SendCompleted; smtpClient.SendAsync(mailMessage, "自定义或null"); //异步发送,用到了 Task 知识,不懂就不要用 smtpClient.SendMailAsync(mailMessage); #endregion } catch (Exception ex) { //发送失败 }
以下代码用于 SendAsync 的时候
//该事件用于 SendAsync 方法 private static void SmtpClient_SendCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e) { var state = e.UserState;//这就是 SendAsync 的第二个参数 }