話說網上發送郵件的代碼很多,但是我由於不細心,導致拿別人的代碼發送郵件老是失敗,今天就說說幾個要注意的地方吧!!!
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服務才能拿到授權碼)