C#异步发送Email代码
提供一个Email验证的正则表达式
string emailStr = @"^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$";
异步发送电子邮件代码
/// <summary> /// 异步发送电子邮件 /// </summary> /// <param name="fromEmail">发送方电子邮件</param> /// <param name="fromPwd">发送方电子邮件密码</param> /// <param name="toEmail">接收方电子邮件</param> /// <param name="subject">邮件标题</param> /// <param name="body">邮件内空</param> /// <param name="emailType">邮件类型</param> smtp.163.com.cn; smtp.qq.com.cn; smtp.126.com.cn; smtp.sina.com.cn private void SendEmailAsync(string fromEmail, string fromPwd, string toEmail, string subject, string body, string emailType) { MailAddress addrFrom = new MailAddress(fromEmail, fromEmail); MailAddress addrTo = new MailAddress(toEmail, toEmail); MailMessage mm = new MailMessage(addrFrom, addrTo); mm.BodyEncoding = Encoding.UTF8; mm.IsBodyHtml = true; mm.Subject = subject; mm.Body = body; if (!string.IsNullOrEmpty(attFile)) { Attachment att = new Attachment(attFile, MediaTypeNames.Application.Octet); ContentDisposition cd = att.ContentDisposition; cd.CreationDate = File.GetCreationTime(attFile); cd.ModificationDate = File.GetLastWriteTime(attFile); cd.ReadDate = File.GetLastAccessTime(attFile); mm.Attachments.Add(att);//添加附件 } NetworkCredential nc = new NetworkCredential(fromEmail, fromPwd); SmtpClient smtp = new SmtpClient(emailType); smtp.UseDefaultCredentials = false; smtp.Credentials = nc; smtp.EnableSsl = false; smtp.DeliveryMethod = SmtpDeliveryMethod.Network; smtp.SendCompleted+=new SendCompletedEventHandler(smtp_SendCompleted); smtp.SendAsync(mm, "OK"); } void smtp_SendCompleted(object sender, AsyncCompletedEventArgs e) { if (e.UserState.ToString() == "OK") MessageBox.Show("发送成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); }