首页 > 代码库 > C#发送邮件
C#发送邮件
邮件发送类:
using System;using System.Collections.Generic;using System.Text;using System.Xml;using System.Configuration;using System.Web;using System.IO;using System.Net;using System.Net.Mail;namespace Maticsoft.Common{ /// <summary> /// 邮件发送类 /// </summary> public class MailSender { public static void Send(string tomail, string bccmail, string subject, string body, params string[] files) { Send(SmtpConfig.Create().SmtpSetting.Sender, tomail, bccmail, subject, body, true, Encoding.Default, true, files); } public static void Send(string frommail, string tomail,string bccmail, string subject, string body, bool isBodyHtml, Encoding encoding, bool isAuthentication, params string[] files) { Send(SmtpConfig.Create().SmtpSetting.Server, SmtpConfig.Create().SmtpSetting.UserName, SmtpConfig.Create().SmtpSetting.Password, frommail, tomail,"", bccmail, subject, body, isBodyHtml, encoding, isAuthentication,false, files); } //直接调用该方法发送邮件,可抄送,密送,逗号分隔多人 public static void Send(string server,string username,string password, string frommail, string tomail, string ccmail,string bccmail, string subject, string body, bool isBodyHtml, Encoding encoding, bool isAuthentication,bool isSsl, params string[] files) { SmtpClient smtpClient = new SmtpClient(server); //MailAddress from = new MailAddress("ben@contoso.com", "Ben Miller"); //MailAddress to = new MailAddress("jane@contoso.com", "Jane Clayton"); MailMessage message = new MailMessage(frommail, tomail); if (bccmail.Length > 1) { string[] maillist = Maticsoft.Common.StringPlus.GetStrArray(bccmail); foreach (string m in maillist) { if (m.Trim() != "") { MailAddress bcc = new MailAddress(m.Trim()); message.Bcc.Add(bcc); } } } if (ccmail.Length > 1) { string[] maillist = Maticsoft.Common.StringPlus.GetStrArray(ccmail); foreach (string m in maillist) { if (m.Trim() != "") { MailAddress cc = new MailAddress(m.Trim()); message.CC.Add(cc); } } } message.IsBodyHtml = isBodyHtml; message.SubjectEncoding = encoding; message.BodyEncoding = encoding; message.Subject = subject; message.Body = body; message.Attachments.Clear(); if (files != null && files.Length != 0) { for (int i = 0; i < files.Length; ++i) { Attachment attach = new Attachment(files[i]); message.Attachments.Add(attach); } } if (isAuthentication == true) { smtpClient.Credentials = new NetworkCredential(username, password); smtpClient.EnableSsl =isSsl; } smtpClient.Send(message); message.Attachments.Dispose(); } /// <summary> /// 重载发送邮件的方法(增加邮件的回复地址) /// </summary> /// <param name="server"></param> /// <param name="username"></param> /// <param name="password"></param> /// <param name="frommail"></param> /// <param name="tomail"></param> /// <param name="ccmail"></param> /// <param name="bccmail"></param> /// <param name="replymail"></param> /// <param name="subject"></param> /// <param name="body"></param> /// <param name="isBodyHtml"></param> /// <param name="encoding"></param> /// <param name="isAuthentication"></param> /// <param name="isSsl"></param> /// <param name="files"></param> public static void Send(string server,string username,string password, string frommail, string tomail, string ccmail,string bccmail, string replymail,string subject, string body, bool isBodyHtml, Encoding encoding, bool isAuthentication,bool isSsl, params string[] files) { SmtpClient smtpClient = new SmtpClient(server); //MailAddress from = new MailAddress("ben@contoso.com", "Ben Miller"); //MailAddress to = new MailAddress("jane@contoso.com", "Jane Clayton"); MailMessage message = new MailMessage(frommail, tomail); if (bccmail.Length > 1) { string[] maillist = Maticsoft.Common.StringPlus.GetStrArray(bccmail); foreach (string m in maillist) { if (m.Trim() != "") { MailAddress bcc = new MailAddress(m.Trim()); message.Bcc.Add(bcc); } } } if (ccmail.Length > 1) { string[] maillist = Maticsoft.Common.StringPlus.GetStrArray(ccmail); foreach (string m in maillist) { if (m.Trim() != "") { MailAddress cc = new MailAddress(m.Trim()); message.CC.Add(cc); } } } if (replymail.Length > 1) { string[] maillist = Maticsoft.Common.StringPlus.GetStrArray(replymail); foreach (string m in maillist) { if (m.Trim() != "") { MailAddress cc = new MailAddress(m.Trim()); message.ReplyToList.Add(cc); } } } message.IsBodyHtml = isBodyHtml; message.SubjectEncoding = encoding; message.BodyEncoding = encoding; message.Subject = subject; message.Body = body; message.Attachments.Clear(); if (files != null && files.Length != 0) { for (int i = 0; i < files.Length; ++i) { Attachment attach = new Attachment(files[i]); message.Attachments.Add(attach); } } if (isAuthentication == true) { smtpClient.Credentials = new NetworkCredential(username, password); smtpClient.EnableSsl = true; } smtpClient.Send(message); message.Attachments.Dispose(); } public static void Send(string recipient, string subject, string body) { Send( SmtpConfig.Create().SmtpSetting.Sender, recipient,"", subject, body, true, Encoding.Default, true, null); } public static void Send(string Recipient, string Sender, string Subject, string Body) { Send(Sender, Recipient, "",Subject, Body, true, Encoding.UTF8, true, null); } } public class SmtpSetting { private string _server; public string Server { get { return _server; } set { _server = value; } } private bool _authentication; public bool Authentication { get { return _authentication; } set { _authentication = value; } } private string _username; public string UserName { get { return _username; } set { _username = value; } } private string _sender; public string Sender { get { return _sender; } set { _sender = value; } } private string _password; public string Password { get { return _password; } set { _password = value; } } } public class SmtpConfig { private static SmtpConfig _smtpConfig; private string ConfigFile { get { string configPath = ConfigurationManager.AppSettings["SmtpConfigPath"]; if (string.IsNullOrEmpty(configPath) || configPath.Trim().Length == 0) { configPath = HttpContext.Current.Request.MapPath("/Config/SmtpSetting.config"); } else { if (!Path.IsPathRooted(configPath)) configPath = HttpContext.Current.Request.MapPath(Path.Combine(configPath, "SmtpSetting.config")); else configPath = Path.Combine(configPath, "SmtpSetting.config"); } return configPath; } } public SmtpSetting SmtpSetting { get { XmlDocument doc = new XmlDocument(); doc.Load(this.ConfigFile); SmtpSetting smtpSetting = new SmtpSetting(); smtpSetting.Server = doc.DocumentElement.SelectSingleNode("Server").InnerText; smtpSetting.Authentication = Convert.ToBoolean(doc.DocumentElement.SelectSingleNode("Authentication").InnerText); smtpSetting.UserName = doc.DocumentElement.SelectSingleNode("User").InnerText; smtpSetting.Password = doc.DocumentElement.SelectSingleNode("Password").InnerText; smtpSetting.Sender = doc.DocumentElement.SelectSingleNode("Sender").InnerText; return smtpSetting; } } private SmtpConfig() { } public static SmtpConfig Create() { if (_smtpConfig == null) { _smtpConfig = new SmtpConfig(); } return _smtpConfig; } }}
分割多个收件人:
#region 获取用逗号分割后的字符数组 /// <summary> /// 获取用逗号分割后字符数组 /// </summary> /// <param name="str"></param> /// <returns></returns> public static string[] GetStrArray(string str) { return str.Split(new Char[] { ‘,‘ }); } #endregion
调用发邮件的方法:(示例是企业qq邮箱)
public void SendEmail(string message) { var ToEmail = System.Configuration.ConfigurationManager.AppSettings["toEmail"].ToString(); var csEmail = System.Configuration.ConfigurationManager.AppSettings["csEmail"].ToString(); var msEmail = System.Configuration.ConfigurationManager.AppSettings["msEmail"].ToString(); Maticsoft.Common.MailSender.Send("smtp.exmail.qq.com", "发件人", "发件密码", "发件人", ToEmail, csEmail, msEmail, "邮件主题", message, false, Encoding.UTF8, true, true, null); }
C#发送邮件
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。