C#发送电子邮件 (异步) z

  1. ///验证电子邮件的正则表达式  
 
  1. 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})(\]?)$";  
 
  1. /// <summary>  
  2.         /// 异步发送电子邮件  
  3.         /// </summary>  
  4.         /// <param name="fromEmail">发送方电子邮件</param>  
  5.         /// <param name="fromPwd">发送方电子邮件密码</param>  
  6.         /// <param name="toEmail">接收方电子邮件</param>  
  7.         /// <param name="subject">邮件标题</param>  
  8.         /// <param name="body">邮件内空</param>  
  9.         /// <param name="emailType">邮件类型</param> smtp.163.com.cn; smtp.qq.com.cn; smtp.126.com.cn;  smtp.sina.com.cn  
  10.         private void SendEmailAsync(string fromEmail, string fromPwd, string toEmail, string subject, string body, string emailType)  
  11.         {  
  12.             MailAddress addrFrom = new MailAddress(fromEmail, fromEmail);  
  13.             MailAddress addrTo = new MailAddress(toEmail, toEmail);  
  14.             MailMessage mm = new MailMessage(addrFrom, addrTo);  
  15.             mm.BodyEncoding = Encoding.UTF8;  
  16.             mm.IsBodyHtml = true;  
  17.             mm.Subject = subject;  
  18.             mm.Body = body;  
  19.   
  20.             if (!string.IsNullOrEmpty(attFile))  
  21.             {  
  22.                 Attachment att = new Attachment(attFile, MediaTypeNames.Application.Octet);  
  23.                 ContentDisposition cd = att.ContentDisposition;  
  24.                 cd.CreationDate = File.GetCreationTime(attFile);  
  25.                 cd.ModificationDate = File.GetLastWriteTime(attFile);  
  26.                 cd.ReadDate = File.GetLastAccessTime(attFile);  
  27.                 mm.Attachments.Add(att);//添加附件  
  28.             }  
  29.   
  30.             NetworkCredential nc = new NetworkCredential(fromEmail, fromPwd);  
  31.             SmtpClient smtp = new SmtpClient(emailType);  
  32.             smtp.UseDefaultCredentials = false;  
  33.             smtp.Credentials = nc;  
  34.             smtp.EnableSsl = false;  
  35.             smtp.DeliveryMethod = SmtpDeliveryMethod.Network;  
  36.             smtp.SendCompleted+=new SendCompletedEventHandler(smtp_SendCompleted);  
  37.             smtp.SendAsync(mm, "OK");  
  38.         }  
  39.   
  40.         void smtp_SendCompleted(object sender, AsyncCompletedEventArgs e)  
  41.         {  
  42.             if (e.UserState.ToString() == "OK")  
  43.                 MessageBox.Show("发送成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);  
  44.         } 
posted on 2015-03-29 22:23  武胜-阿伟  阅读(468)  评论(0编辑  收藏  举报