C#使用SMTP协议发送邮件(腾讯企业邮箱)

  • 来源:新网
  • 更新日期:2018-03-13

摘要:大部分邮箱都支持使用SMTP协议发送邮件,使用这种方法可以很方便的在系统开发中发送邮件。 在C#语言中,发送邮件的相关类位于System.Net.Mail命名空间下。 具体过程为创建邮件类MailMessage实例,之后创建SmtpClient实例,通过SmtpClient实例将MailMessage实例发送出去。

大部分邮箱都支持使用SMTP协议发送邮件,使用这种方法可以很方便的在系统开发中发送邮件。
在C#语言中,发送邮件的相关类位于System.Net.Mail命名空间下。

t01c8b2b3eccaa69d8b.jpg
具体过程为创建邮件类MailMessage实例,之后创建SmtpClient实例,通过SmtpClient实例将MailMessage实例发送出去。

/// <summary> /// 发送邮件 /// </summary> /// <param name="model"></param> /// <returns></returns> public static bool SendMail(MailModel model) { try { MailAddress receiver = new MailAddress(model.ReceiverAddress, model.ReceiverName); MailAddress sender = new MailAddress(model.SenderAddress, model.SenderName); MailMessage message = new MailMessage(); message.From = sender;//发件人 message.To.Add(receiver);//收件人 //message.CC.Add(sender);//抄送人 message.Subject = model.Title;//标题 message.Body = model.Content;//内容 message.IsBodyHtml = true;//是否支持内容为HTML SmtpClient client = new SmtpClient(); client.Host = "smtp.exmail.qq.com"; //client.Port = 465; client.EnableSsl = true;//是否启用SSL client.Timeout = 10000;//超时 client.DeliveryMethod = SmtpDeliveryMethod.Network; client.UseDefaultCredentials = false; client.Credentials = new NetworkCredential(model.SenderAddress, model.SenderPassword); client.Send(message); return true; } catch (Exception e) { return false; } }

SmtpClient使用默认端口25,不使用端口465。
MailModel为自定义数据结构。

/// <summary> /// 邮件结构体 /// </summary> public struct MailModel { /// <summary> /// 收件人地址 /// </summary> public string ReceiverAddress { get; set; } /// <summary> /// 收件人姓名 /// </summary> public string ReceiverName { get; set; } /// <summary> /// 标题 /// </summary> public string Title { get; set; } /// <summary> /// 内容 /// </summary> public string Content { get; set; } /// <summary> /// 发件人地址(非必填) /// </summary> public string SenderAddress { get; set; } /// <summary> /// 发件人姓名(非必填) /// </summary> public string SenderName { get; set; } /// <summary> /// 发件人密码(非必填) /// </summary> public string SenderPassword { get; set; } }