/// <summary>
/// 发送邮件 不带有附件
/// </summary>
/// <param name="from">发件人Email</param>
/// <param name="password">发件人密码</param>
/// <param name="to">接收人</param>
/// <param name="cc">抄送</param>
/// <param name="fileList">邮件附件 System.Web.HttpFileCollection fileList,</param>
/// <param name="smtpServer">SmtpServer</param>
/// <param name="subject">Email标题</param>
/// <param name="content">邮件内容</param>
public void SendMsg(string from, string password, List<string> to, List<string> cc, string smtpServer, string subject, string content)
{
try
{
#region 邮件服务器以及发送设置
//指定发送邮件的服务器
SmtpClient SClient = new SmtpClient(smtpServer);
//System.Net.CredentialCache.DefaultCredentials(获取应用程序的系统凭据) 是否与请求一起发送
SClient.UseDefaultCredentials = false;
//验证Email账户密码
SClient.Credentials = new NetworkCredential(from, password);
//指定邮件发送方式
SClient.DeliveryMethod = SmtpDeliveryMethod.Network;
#endregion
#region 邮件发送的内容以及其他信息
MailMessage Msg = new MailMessage();
Msg.From = new MailAddress(from);
if (to != null)
{
for (int j = 0; j < to.Count; j++)
{
//收件人和发件人中不能有重复账号
if (to[j].ToString() != from)
{
Msg.To.Add(to[j]);
}
}
}
if (cc != null)
{
for (int i = 0; i < cc.Count; i++)
{
//邮件抄送地址
Msg.CC.Add(cc[i].ToString());
}
}
//邮件标题
Msg.Subject = subject;
//邮件主体的编码格式
Msg.BodyEncoding = System.Text.Encoding.UTF8;
//邮件内容
Msg.Body = content;
//添加附件
for (int i = 0; i < fileList.Count; i++)
{ ///添加单个附件
System.Web.HttpPostedFile file = fileList[i];
if (file.FileName.Length <= 0 || file.ContentLength <= 0)
{
break;
}
Attachment attachment = new Attachment(file.FileName);
Msg.Attachments.Add(attachment);
}
Msg.IsBodyHtml = true;
//发送邮件
SClient.Send(Msg);
Msg.Dispose();
#endregion
}
catch (System.Exception ex)
{
LogControl.WriteError("Send Email" , ex.Message);
}
}
也可以添加邮件抄送人,添加方法跟上面的mail.To.Add("XXXX")是一样的,mail.CC.Add,直接将抄送人地址放置进去
PS:要对2个命名空间进行引用添加
using System.Net;
using System.Net.Mail;
在进行添加Email地址的时候,最好先进行正则验证,验证Email地址的有效性:
正则验证方法如下:
//测试Email正则表达式
string CheckStr = @"^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$";
/// <summary>
/// 检测Email地址
/// </summary>
/// <param name="Value"></param>
/// <returns></returns>
public bool CheckEmail(string Value)
{
return Regex.IsMatch(Value, CheckStr);
}
微信公众平台已开通,加个关注呗。我们一起学习,一起进步
微信号点击添加关注:《IOS开发总汇》
百度知道群:开发者俱乐部