C#實現發送給QQ郵件


點擊進入推薦鏈接

最近在做一個通過點擊忘記密碼往用戶郵箱中發郵件(郵件內容是一個超鏈接)點擊進行修改的功能,發送原理,我們只是把郵件發送給smtp服務器,然后再由smtp服務器發送到郵箱,發送之前要校驗一下。

1、微軟已經幫我們封裝好了發送郵件的類 MailMessage,MailMessage類構造一些郵件信息,然后通過SmtpClient進行郵件發送。MailMessage常用的一些屬性有:

  1.1、From:發件人郵箱地址。

  1.2、To:收件人的郵箱地址。

  1.3、Subject:郵件標題。

  1.4、Body:郵件內容。

2、還需要用到SmtpClient類進行發送郵件。SmtpClient類的意思是:允許應用程序使用簡單郵件傳輸協議 (SMTP) 來發送電子郵件。SmtpClient類常用的一些屬性和方法:

  2.1、Host: 獲取或設置用於 SMTP 事務的主機的名稱或 IP 地址。

  2.2、EnableSsl:是否使用安全套接字層加密連接。

  2.3、UseDefaultCredentials:是否隨請求一起發送。

  2.4、Credentials:獲取或設置用於驗證發件人身份的憑證。

  2.5、Send():發送。

3、上代碼。

 1 protected void Page_Load(object sender, EventArgs e)
 2 {
 3     //實例化一個發送郵件類。
 4     MailMessage mailMessage = new MailMessage();
 5     //發件人郵箱地址,方法重載不同,可以根據需求自行選擇。
 6     mailMessage.From = new MailAddress("123456@qq.com");
 7     //收件人郵箱地址。
 8     mailMessage.To.Add(new MailAddress("654321@qq.com"));
 9     //郵件標題。
10     mailMessage.Subject = "發送郵件測試";
11     //郵件內容。
12     mailMessage.Body = "這是我給你發送的第一份郵件哦!";
13 
14     //實例化一個SmtpClient類。
15     SmtpClient client = new SmtpClient();
16     //在這里我使用的是qq郵箱,所以是smtp.qq.com,如果你使用的是126郵箱,那么就是smtp.126.com。
17     client.Host = "smtp.qq.com";
18     //使用安全加密連接。
19     client.EnableSsl = true;
20     //不和請求一塊發送。
21     client.UseDefaultCredentials = false ;
22     //驗證發件人身份(發件人的郵箱,郵箱里的生成授權碼);
23     client.Credentials = new NetworkCredential("123456@qq.com", "fnsedjxib");
24     //發送
25     client.Send(mailMessage);          
26     Context.Response.Write("發送成功");
27 }

 4、常見錯誤信息及解決辦法。

  在做此功能的過程中,遇到過好幾個異常信息,到最后百度了一下,總算解決了,有些新人在做的過程中,或許不知道問題出在哪了,接下來我就說說我常見的錯誤及解決辦法。

  4.1、mail from address must be same as authorization user

    一般出這種情況的原因有兩種:

    4.1.1、POP3/IMAP/SMTP未開啟。

        解決辦法:進入qq郵箱- - - - -》設置- - - - -》賬戶- - - - -》然后找到POP3/IMAP/SMTP開啟即可。

        

    4.1.2、授權碼錯誤。

        解決辦法:進入qq郵箱- - - - -》設置- - - - -》賬戶- - - - -》然后找到POP3/IMAP/SMTP開POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服務下的生成授權碼填上即可。

  4.2、Error: need EHLO and AUTH first !

     一般情況系出現這種錯誤原因是SmtpClient類的EnableSsl、UseDefaultCredentials屬性放到了Credentials屬性之下。

     解決辦法:將SmtpClient類的EnableSsl、UseDefaultCredentials屬性放到了Credentials屬性之上。

5、然后根據自己構建的鏈接就可以找回密碼了。 

點擊進入推薦鏈接

End。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM