300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > C#实现自动发送邮件 以及问题解决(SMTP邮箱服务器使用QQ的为例)

C#实现自动发送邮件 以及问题解决(SMTP邮箱服务器使用QQ的为例)

时间:2023-09-25 17:12:22

相关推荐

C#实现自动发送邮件 以及问题解决(SMTP邮箱服务器使用QQ的为例)

为了满足项目需求,今日需要实现一个功能,就是自动发送邮件给某些用户,发送邮件的代码很简单,网上很容易找到,但就是看起来简单的东西可能也会遇到很多问题。

总结一下都有什么问题:

1)命令顺序不正确。服务器响应为:Error:need EHLO and AUTH first!

2)不允许使用邮箱名称。服务器相应为:Local user only,163 smtp1…

3)发送失败

4)SMTP服务器要求安全连接或客户端未通过身份验证。服务器响应为:Authentication required

基于以上问题,进行了各种尝试,还是得不到解决,于是猜想是不是SMTP服务器的问题,然后各种服务器换来试试都会报错。最后有的人说验证发件人邮箱时不要填密码,而是填写授权码,如下

client.Credentials = new NetworkCredential("123456@", "ahdIrjof");

果然,修改为授权码后发送邮件成功了。

qq邮件的授权码获取方式:

登录网页版QQ邮箱,点击上方设置,点击pop3点击开启,自行验证,并获取授权码,注意先记录下来。

贴代码:

//实例化一个发送邮件类。MailMessage mailMessage = new MailMessage();//发件人邮箱地址,方法重载不同,可以根据需求自行选择。mailMessage.From = new MailAddress("123456@");//收件人邮箱地址。mailMessage.To.Add(new MailAddress("eml@"));//抄送人邮箱地址。//.Add(sender);//邮件标题。mailMessage.Subject = "发送邮件测试";//邮件内容。mailMessage.Body = "这是发送的邮件测试!";//是否支持内容为HTML。//mailMessage.IsBodyHtml = true;//实例化一个SmtpClient类。SmtpClient client = new SmtpClient();client.Port = 25;//在这里使用的是qq邮箱,所以是,如果你使用的是126邮箱,那么就是。//client.Host = "";client.Host = "";//使用安全加密连接(是否启用SSL)client.EnableSsl = true;//设置超时时间client.Timeout = 10000;//不和请求一块发送。client.UseDefaultCredentials = false;//验证发件人身份(发件人的邮箱,邮箱里的生成授权码);client.Credentials = new NetworkCredential("123456@", "asdgdrtyyr"); //client.Credentials = new NetworkCredential("liulijun3236@", "ZAJDNCKWHUBHQIMY");//网易try{//发送client.Send(mailMessage);//发送成功MessageBox.Show("发送成功");}catch (Exception ex)//发送异常{//发送失败MessageBox.Show(ex.Message);}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。