首先我們要知道我們使用的郵件的主機、端口等信息。本次博客就以QQ郵箱為例子.
第一、你打開郵箱,找到設置,選擇賬戶;在下面找到 “ POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服務 ”
第二、開啟POP3/SMTP服務
第三步、服務開啟之后,就是代碼了,具體代碼如下
using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Mail; using System.Text; using System.Web; using System.Windows.Forms; namespace Email { class Programs { static void Main(string[] args) { btnEmailCode_Click(); } //獲取郵箱驗證碼 public static void btnEmailCode_Click() { string mailFrom = "************"; //發件人郵箱地址 MailAddress MessageFrom = new MailAddress(mailFrom); //發件人郵箱地址 string mailTo = "************";//收件人地址 string activeCode = Guid.NewGuid().ToString().Substring(0, 6);//生成激活碼 string MessageSubject = "******************"; //主題 string MessageBody = "********************";//郵件內容 if (Send(MessageFrom, mailTo, MessageSubject, MessageBody)) { Console.WriteLine("發送郵件成功"); } else { Console.WriteLine("發送郵件失敗"); } } public static bool Send(MailAddress MessageFrom, string MessageTo, string MessageSubject, string MessageBody) { MailMessage message = new MailMessage(); message.From = MessageFrom; message.To.Add(MessageTo); //收件人郵箱地址可以是多個以實現群發 message.Subject = MessageSubject; message.Body = MessageBody; message.IsBodyHtml = true; //是否為html格式 message.Priority = MailPriority.High; //發送郵件的優先等級 SmtpClient sc = new SmtpClient(); sc.Host = "smtp.qq.com"; //指定發送郵件的服務器地址或IP sc.Port = 25; //指定發送郵件端口 /* * email :發件人的郵箱賬號 * butpgifsvvqebcbf:這個是你發送郵件的一個令牌,你需要在郵箱中申請之后會給你一個這樣的令牌(字符串) * **/ sc.Credentials = new System.Net.NetworkCredential("email", "butpgifsvvqebcbf"); //指定登錄服務器的用戶名和密碼(發件人的郵箱登陸密碼) try { sc.Send(message); // 發送郵件 return true; } catch (ArgumentNullException ex) { return false; MessageBox.Show(ex.Message); } catch (ArgumentException ex) { return false; MessageBox.Show(ex.Message); } //已釋放此對象。 catch (ObjectDisposedException ex) { return false; MessageBox.Show(ex.Message); } catch (InvalidOperationException ex) { return false; MessageBox.Show(ex.Message); } catch (SmtpFailedRecipientException ex) { return false; MessageBox.Show(ex.Message); } catch (SmtpException ex) { return false; MessageBox.Show(ex.Message); } catch (Exception ex) { return false; MessageBox.Show(ex.Message); } } private static void SendCompletedCallback(object sender, System.ComponentModel.AsyncCompletedEventArgs e) { if (e.Cancelled) //郵件發送被取消 { MessageBox.Show("發送被取消!"); } if (e.Error != null) //郵件發送失敗 { MessageBox.Show("發送失敗!"); } else //發送成功 { MessageBox.Show("發送成功!"); } } } }
注意:
sc.Host = "smtp.qq.com"; //指定發送郵件的服務器地址或IP sc.Port = 25; //指定發送郵件端口
這樣你就可以發送成郵件了