這個幫助類只能發送簡單的基本郵件,只能發送給多個用戶,單一內容。不具有抄送功能,附件添加功能。功能代碼如下,
private void button3_Click(object sender, EventArgs e) { int result = SendEmail("[email protected]", "123456", new string[] { "[email protected]" }, "測試標題", "測試內容", "smtp.qq.com"); MessageBox.Show(result.ToString()); } ///<summary> /// 發送郵件 ///</summary> ///<param name="sendEmailAddress">發件人郵箱</param> ///<param name="sendEmailPwd">發件人密碼</param> ///<param name="msgToEmail">收件人郵箱地址</param> ///<param name="title">郵件標題</param> ///<param name="content">郵件內容</param> ///<param name="host">郵件SMTP服務器</param> ///<returns>0:失敗。1:成功!</returns> public static int SendEmail(string sendEmailAddress, string sendEmailPwd, string[] msgToEmail, string title, string content, string host) { //發件者郵箱地址 string fjrtxt = sendEmailAddress; //發件者郵箱密碼 string mmtxt = sendEmailPwd; //主題 string zttxt = title; //內容 string nrtxt = content; string[] fasong = fjrtxt.Split('@'); //設置郵件協議 SmtpClient client = new SmtpClient(host); //System.Net.Mail.SmtpClient client.UseDefaultCredentials = false; //通過網絡發送到Smtp服務器 client.DeliveryMethod = SmtpDeliveryMethod.Network; //通過用戶名和密碼 認證 client.Credentials = new NetworkCredential(fasong[0].ToString(), mmtxt); //System.Net.NetworkCredential //QQ郵箱使用ssl加密,需要設置SmtpClient.EnableSsl 屬性為True表示“指定 SmtpClient 使用安全套接字層 (SSL) 加密連接。” client.EnableSsl = true; //發件人和收件人的郵箱地址 MailMessage mmsg = new MailMessage(); mmsg.From = new MailAddress(fjrtxt); for (int i = 0; i < msgToEmail.Length; i++) { mmsg.To.Add(new MailAddress(msgToEmail[i])); } //郵件主題 mmsg.Subject = zttxt; //主題編碼 mmsg.SubjectEncoding = Encoding.UTF8; //郵件正文 mmsg.Body = nrtxt; //正文編碼 mmsg.BodyEncoding = Encoding.UTF8; //設置為HTML格式 mmsg.IsBodyHtml = true; //優先級 mmsg.Priority = MailPriority.High; try { client.Send(mmsg); return 1; } catch (Exception exss) { string msg = exss.Message; return 0; } }
值得注意的是,使用QQ郵箱時,發件人密碼使用的是QQ郵箱獨立密碼
在winform程序測試有效,關於在web頁面使用,有待測試。
歡迎大家一起來和我討論C#相關知識。關注我吧!