返回顶部

收藏

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);
        }

标签:异步,email,C#

收藏

0人收藏

支持

0

反对

0

相关聚客文章
  1. 多多 发表 2011-08-19 12:09:50 C#异步服务器套接字示例
  2. bystander 发表 2013-03-01 14:57:22 C#中的Debug类
  3. skeet 发表 2012-05-06 13:58:45 The perils of conditional mutability
  4. 97world 发表 2013-04-21 01:15:05 中文雅虎邮箱 – 从第一款“终身使用”邮箱到现在的终止使用
  5. 博主 发表 2013-03-11 00:00:00 移花接木 - 编译同步代码为异步代码 [数据结构篇]
  6. admin 发表 2013-06-24 02:46:00 自动化工具word文档批量转html
  7. 草依山 发表 2013-08-21 07:00:00 karma下测试异步载入的js文件
  8. efour 发表 2013-11-07 09:09:35 C#下使用muParser解析数学表达式
  9. admin 发表 2014-03-05 10:20:42 异步加载图片按钮
  10. 嘟嘟 发表 2013-09-08 04:59:01 c#坐标变换
  11. itcodes 发表 2014-07-22 17:00:00 C#计算时间差。
  12. 博主 发表 2014-06-23 13:54:58 WPF使用Canvas绘制可变矩形

发表评论