C#同SMTP协议发送邮件时如何判断发件箱密码正误

2025-03-19 18:13:12
推荐回答(2个)
回答(1):

注意以下代码中的异常处理:

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);
}

回答(2):

发送邮件时会有同步状态返回的,根据返回状态值判断即可