异步批量发送邮件

3 篇文章 0 订阅
2 篇文章 0 订阅
  1. using System;
  2. using System.ComponentModel;
  3. using System.Net;
  4. using System.Net.Mail;
  5.  
  6. namespace MailSendExample 
  7. {
  8.  
  9.         //异步发送,获取发送状态
  10.         static bool mailSent = false;
  11.         public static void SendCompletedCallback(object sender,AsyncCompletedEventArgs e)
  12.         {
  13.  
  14.             if (e.Cancelled)
  15.             {
  16.                 mailSent = false;
  17.             }
  18.             if (e.Error != null)
  19.             {
  20.                 mailSent = false;
  21.             }
  22.             else
  23.             {
  24.                 mailSent = true;
  25.             }
  26.            
  27.            
  28.         }
  29.  
  30. public static bool SendMail(string fromEmailstring fromNamestring reEmail,string toEmailstring mailTitlestring mailBody)
  31.         {
  32.            
  33.             //格式化Email,收件人支持半角逗号分隔的多个Email
  34.             toEmail = toEmail.Replace(";"",");
  35.             toEmail = toEmail.Replace(""",");
  36.             toEmail = toEmail.Replace(""",");
  37.    
  38.  
  39.  
  40.             MailMessage mail = new MailMessage();
  41.             try
  42.             {
  43.                 //发件人,发件人名
  44.                 mail.From = new MailAddress( fromEmailfromName);
  45.                 //回复人,回复人名
  46.                 mail.ReplyTo = new MailAddress(reEmailfromName);
  47.                 //收件人
  48.                 mail.To.Add(toEmail);
  49.                 //邮件优先级
  50.                 mail.Priority = MailPriority.Normal;
  51.                 //设置html邮件
  52.                 mail.IsBodyHtml = true;
  53.                 //标题
  54.                 mail.Subject = mailTitle;
  55.                 //内容
  56.                 mail.Body = mailBody;
  57.             }
  58.             catch (Exception ex)
  59.             {
  60.                 //错误日志记录
  61.                 Logger.WriteLine("SendMail_ErrorMail:" + ex.Message + "|" +toEmail);
  62.                 return false;
  63.             }
  64.  
  65.            
  66.             try
  67.             {
  68.                 //邮件服务器
  69.                 string SMTPServer = "mail.aaaa.com";
  70.                 //发送帐号
  71.                 string SMTPAuthUsername = "bbb@aaaa.com";
  72.                 //发送账户的密码
  73.                 string SMTPAuthPassword = "123456";
  74.                 //定义传输协议
  75.                 SmtpClient smtp = new SmtpClient(SMTPServer);
  76.                 //设置认证发件人
  77.                 smtp.Credentials = new NetworkCredential(SMTPAuthUsername,SMTPAuthPassword);
  78.                 //异步发送完成获取发送状态
  79.                 smtp.SendCompleted +=new SendCompletedEventHandler(SendCompletedCallback);
  80.  
  81.                 //调试
  82.                 //Logger.WriteLine("SendMail:" + mail.To + "|" + mail.From );
  83.  
  84.                 //异步发送
  85.                 smtp.SendAsync(mailString.Empty);
  86.                
  87.                 return mailSent;
  88.             }
  89.             catch (Exception ex)
  90.             {
  91.                 Logger.WriteLine("SendMail_Send:" + ex.Message + "|" + SMTPServer);
  92.                 return false;
  93.             }
  94.  
  95.         }
  96.  
  97.  
  98.     }
  99. }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值