注意以下代码中的异常处理:
using Sytem.Text;
using System.Net;
using System.Net.Mail;
SmtpClient client = new SmtpClient();
client.Host = "smtp.163.com";
client.Port = 25;
//通过网络发送到SMTP服务器
client.DeliveryMethod = SmtpDeliveryMethod.Network;
//发件人登录邮箱的用户名和密码
client.Credentials = new NetworkCredential("bear_boy", "123456");
MailAddress fromAddress = new MailAddress("bear_boy@163.com", "熊孩子");
MailAddress toAddress = new MailAddress("bear-girl@163.com", "小红");
MailMessage mailMessage = new MailMessage(fromAddress, toAddress);
mailMessage.Subject = "邮件的主题";
mailMessage.Body = "测试邮件"
mailMessage.SubjectEncoding = Encoding.UTF8;
mailMessage.BodyEncoding = Encoding.GetEncoding("GB2312");
mailMessage.Priority = MailPriority.High;
try
{
client.Send(mailMessage);//发送邮件
}
catch(SmtpClient se)
{
// 1. 连接SMTP服务器失败
// 2. 用户名或密码验证错误
// 3. 超时
// 这三种情况导致抛出SmtpClient异常
// -------
Console.WirteLine(se.Message);
}
发送邮件时会有同步状态返回的,根据返回状态值判断即可