话说网上发送邮件的代码很多,但是我由于不细心,导致拿别人的代码发送邮件老是失败,今天就说说几个要注意的地方吧!!!
public bool SendEmail() { MailMessage msg = new MailMessage(); msg.To.Add("to@qq.com");//收件人地址 msg.CC.Add("cc@qq.com");//抄送人地址 msg.From = new MailAddress("from@qq.com", "Edward");//发件人邮箱,名称 msg.Subject = "This is a test email from QQ";//邮件标题 msg.SubjectEncoding = Encoding.UTF8;//标题格式为UTF8 msg.Body = "this is body";//邮件内容 msg.BodyEncoding = Encoding.UTF8;//内容格式为UTF8 SmtpClient client = new SmtpClient(); client.Host = "smtp.qq.com";//SMTP服务器地址 client.Port = 587;//SMTP端口,QQ邮箱填写587 client.EnableSsl = true;//启用SSL加密 //发件人邮箱账号,授权码(注意此处,是授权码你需要到qq邮箱里点设置开启Smtp服务,然后会提示你第三方登录时密码处填写授权码) client.Credentials = new System.Net.NetworkCredential("from@qq.com", "password"); try { client.Send(msg);//发送邮件 } catch (Exception) { return false; } return true; }
网上类似这段代码的代码很多,但是大多数都说的是client.Credentials = new System.Net.NetworkCredential("from@qq.com", "password")这块写的是password,其实可能之前的前辈们用的时候QQ邮箱需要的是密码,但是现在qq邮箱需要的则是授权码,下面就说怎么拿到这个授权码吧!
首先发送邮件要开启一个smtp的服务(ps:我这菜鸟还是不久前才知道的,不过好像outlook不是smtp,反正协议很多的)
第一步:打开qq邮箱点击设置:
然后还有两步你就成功了
第二步:点击账户
第三步:向下拉找到smtp字样的地方,然后全部开启
相信你能理解这句话,然后你开启的时候会自动弹出授权码,如果没有当时没有复制粘贴可以点击生成授权码 ,来重新生成:
就是这个东东了,拿这个复制粘贴到你代码的password处即可(ps:本菜鸟被坑的很惨啊,再说多一句163的邮箱也是这样的,只有开启smtp服务才能拿到授权码)