唉,最近要做一个项目,里面需要实现邮件发送功能。在网络上也找一些看,自己也随便写下。也当做是给自己复习下吧,如有不对之处还请大家指出。谢谢!
首先我是创建一个实体对象Model (EmailParameterSet) :
1 public class EmailParameterSet 2 { 3 /// <summary> 4 /// 收件人的邮件地址 5 /// </summary> 6 public string ConsigneeAddress { get; set; } 7 8 /// <summary> 9 /// 收件人的名称 10 /// </summary> 11 public string ConsigneeName { get; set; } 12 13 /// <summary> 14 /// 收件人标题 15 /// </summary> 16 public string ConsigneeHand { get; set; } 17 18 /// <summary> 19 /// 收件人的主题 20 /// </summary> 21 public string ConsigneeTheme { get; set; } 22 23 /// <summary> 24 /// 发件邮件服务器的Smtp设置 25 /// </summary> 26 public string SendSetSmtp { get; set; } 27 28 /// <summary> 29 /// 发件人的邮件 30 /// </summary> 31 public string SendEmail { get; set; } 32 33 /// <summary> 34 /// 发件人的邮件密码 35 /// </summary> 36 public string SendPwd { get; set; } 37 /// <summary> 38 /// 发件内容 39 /// </summary> 40 public string SendContent { get; set; } 41 }
方法也简单 如果发送成功就返回一个bool值
1 public bool MailSend(EmailParameterSet EPSModel ) 2 { 3 try 4 { 5 //确定smtp服务器端的地址,实列化一个客户端smtp 6 System.Net.Mail.SmtpClient sendSmtpClient = new System.Net.Mail.SmtpClient(EPSModel.SendSetSmtp);//发件人的邮件服务器地址 7 //构造一个发件的人的地址 8 System.Net.Mail.MailAddress sendMailAddress = new MailAddress(EPSModel.SendEmail, EPSModel.ConsigneeHand, Encoding.UTF8);//发件人的邮件地址和收件人的标题、编码 9 10 //构造一个收件的人的地址 11 System.Net.Mail.MailAddress consigneeMailAddress = new MailAddress(EPSModel.ConsigneeAddress, EPSModel.ConsigneeName, Encoding.UTF8);//收件人的邮件地址和收件人的名称 和编码 12 13 //构造一个Email对象 14 System.Net.Mail.MailMessage mailMessage = new MailMessage(sendMailAddress, consigneeMailAddress);//发件地址和收件地址 15 mailMessage.Subject = EPSModel.ConsigneeTheme;//邮件的主题 16 mailMessage.BodyEncoding = Encoding.UTF8;//编码 17 mailMessage.SubjectEncoding = Encoding.UTF8;//编码 18 mailMessage.Body = EPSModel.SendContent;//发件内容 19 mailMessage.IsBodyHtml = false;//获取或者设置指定邮件正文是否为html 20 21 //设置邮件信息 (指定如何处理待发的电子邮件) 22 sendSmtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;//指定如何发邮件 是以网络来发 23 sendSmtpClient.EnableSsl = false;//服务器支持安全接连,安全则为true 24 25 sendSmtpClient.UseDefaultCredentials = false;//是否随着请求一起发 26 27 //用户登录信息 28 NetworkCredential myCredential = new NetworkCredential(EPSModel.SendEmail, EPSModel.SendPwd); 29 sendSmtpClient.Credentials = myCredential;//登录 30 sendSmtpClient.Send(mailMessage);//发邮件 31 return true;//发送成功 32 } 33 catch (Exception) 34 { 35 return false;//发送失败 36 } 37 }
然后就调用就可以。
1 private void button3_Click(object sender, EventArgs e) 2 { 3 EmailParameterSet model = new EmailParameterSet(); 4 model.SendEmail = "[email protected]"; 5 model.SendPwd = "xxx";//密码 6 model.SendSetSmtp = "smtp.163.com";//发送的SMTP服务地址 ,每个邮箱的是不一样的。。根据发件人的邮箱来定 7 model.ConsigneeAddress = "[email protected]"; 8 model.ConsigneeTheme = "主题"; 9 model.ConsigneeHand = "标题"; 10 model.ConsigneeName = "李可能"; 11 model.SendContent = "htpp://www.baidu.com"; 12 if (MailSend(model)== true) 13 { 14 MessageBox.Show("邮件发送成功!"); 15 } 16 else 17 { 18 MessageBox.Show("邮件发送失败!"); 19 } 20 }
C#实现简单的邮件发送功能
时间: 2024-10-14 18:58:31