C#发送电子邮件 (异步) z
2024-08-23 10:22:02
- ///验证电子邮件的正则表达式
- 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);
- }
最新文章
- iOS开发UI篇—Quartz2D简单使用(三)
- 链接测试工具xenu link sleuth的使用
- Dynamic CRM 2013学习笔记(六)备份和恢复
- SignalR-入门
- 微信公众账号开发教程(一) 基本原理及微信公众账号注册 ——转自http://www.cnblogs.com/yank/p/3364827.html
- 《FLASH CC 2015 CANVAS 中文教程》——3、this关键字 入门
- 虚拟化之vmx配置文件
- Android开发的初学者快速创建一个项目
- Python爬虫第一集
- ASP.NET(C#) GridView (编辑、删除、更新、取消)
- 最大流加强 dinic+当前弧优化
- 项目需要简单些了个WEB APP 的弹出窗
- WCF和ASP.NET Web API在应用上的选择
- python version 2. required,which was not found in the registry 解决方案
- Cmder Windows 下的终端神器
- [hosts]在hosts中屏蔽一级域名和二级域名的写法
- 解决一个Ubuntu中编译NEON优化的OpenCV的错误
- WinForm中在非UI线程更改控件值的办法
- 卷积神经网络(CNN)张量(图像)的尺寸和参数计算(深度学习)
- valgrind内存检测工具