- using System;
- using System.ComponentModel;
- using System.Net;
- using System.Net.Mail;
- namespace MailSendExample
- {
- //异步发送,获取发送状态
- static bool mailSent = false;
- public static void SendCompletedCallback(object sender,AsyncCompletedEventArgs e)
- {
- if (e.Cancelled)
- {
- mailSent = false;
- }
- if (e.Error != null)
- {
- mailSent = false;
- }
- else
- {
- mailSent = true;
- }
- }
- public static bool SendMail(string fromEmail, string fromName, string reEmail,string toEmail, string mailTitle, string mailBody)
- {
- //格式化Email,收件人支持半角逗号分隔的多个Email
- toEmail = toEmail.Replace(";", ",");
- toEmail = toEmail.Replace(";", ",");
- toEmail = toEmail.Replace(",", ",");
- MailMessage mail = new MailMessage();
- try
- {
- //发件人,发件人名
- mail.From = new MailAddress( fromEmail, fromName);
- //回复人,回复人名
- mail.ReplyTo = new MailAddress(reEmail, fromName);
- //收件人
- mail.To.Add(toEmail);
- //邮件优先级
- mail.Priority = MailPriority.Normal;
- //设置html邮件
- mail.IsBodyHtml = true;
- //标题
- mail.Subject = mailTitle;
- //内容
- mail.Body = mailBody;
- }
- catch (Exception ex)
- {
- //错误日志记录
- Logger.WriteLine("SendMail_ErrorMail:" + ex.Message + "|" +toEmail);
- return false;
- }
- try
- {
- //邮件服务器
- string SMTPServer = "mail.aaaa.com";
- //发送帐号
- string SMTPAuthUsername = "bbb@aaaa.com";
- //发送账户的密码
- string SMTPAuthPassword = "123456";
- //定义传输协议
- SmtpClient smtp = new SmtpClient(SMTPServer);
- //设置认证发件人
- smtp.Credentials = new NetworkCredential(SMTPAuthUsername,SMTPAuthPassword);
- //异步发送完成获取发送状态
- smtp.SendCompleted +=new SendCompletedEventHandler(SendCompletedCallback);
- //调试
- //Logger.WriteLine("SendMail:" + mail.To + "|" + mail.From );
- //异步发送
- smtp.SendAsync(mail, String.Empty);
- return mailSent;
- }
- catch (Exception ex)
- {
- Logger.WriteLine("SendMail_Send:" + ex.Message + "|" + SMTPServer);
- return false;
- }
- }
- }
- }
异步批量发送邮件
最新推荐文章于 2022-03-07 20:05:42 发布