ASP.NET -- 邮件发送
2011-09-25 14:36
411 查看
using System.Net.Mail;//引入这个命名空间
1.同步发送,程序将被阻塞
protected void Button1_Click(object sender, EventArgs e) { string path = Server.MapPath("~/uploadfiles/" + FileUpload1.FileName);//FileUpload1控件 FileUpload1.SaveAs(path);//保存上传的文件 MailMessage mail = new MailMessage(); mail.From = new MailAddress("xxx@qq.com", "发件人");//发件人地址,第二个参数表示发件人,可不要, mail.To.Add(new MailAddress("xxxx@126.com"));//收件人地址 mail.Priority = MailPriority.High; //优先级 mail.Subject = "主题-发送时间:" + DateTime.Now;//主题 mail.Body = "<a href='http://www.qq.com'>邮件内容</a>";//发送的正文 mail.IsBodyHtml = true;//是否支持html的 Attachment MsgAttach = new Attachment(path);//获取刚刚上传的文件的地址, mail.Attachments.Add(MsgAttach);//添加到附件 SmtpClient server = new SmtpClient();//邮箱服务器对象 server.Host = "smtp.qq.com";//服务器主机 server.Credentials = new System.Net.NetworkCredential("pwd", "xxxxxx");//个人账号和密码 server.Send(mail); //异步发送, 会进入回调函数SendCompletedCallback,来判断发送是否成功 }
2.异步发送 // 异步发送必须在:<%@ Page%>添加Async="true"
protected void Button2_Click(object sender, EventArgs e) { try { MailMessage mail = new MailMessage(); mail.From = new MailAddress("xxx@qq.com", "发件人"); mail.To.Add(new MailAddress("xxx@126.com")); mail.Subject = "主题-发送时间:" + DateTime.Now; mail.Body = "<a href='http://www.qq.com'>邮件内容</a>"; mail.IsBodyHtml = true; SmtpClient server = new SmtpClient(); server.Host = "smtp.qq.com"; server.Credentials = new System.Net.NetworkCredential("pwd", "xxxxxx"); server.SendCompleted += new SendCompletedEventHandler(SendCompletedCallback);//回调函数 string userState = "测试"; server.EnableSsl = true; server.SendAsync(mail, userState); ClientScript.RegisterClientScriptBlock(this.GetType(), "success", "<script>alert('发送成功')</script>"); } catch(SmtpException ex) { ClientScript.RegisterClientScriptBlock(this.GetType(), "fail", "<script>alert('发送失败,原因是:"+ex.Message+"')</script>"); } private static void SendCompletedCallback(object sender, System.ComponentModel.AsyncCompletedEventArgs e) { if (e.Cancelled) //邮件发送被取消 { } if (e.Error != null) //邮件发送失败 { } else //发送成功 { } }
当然有外国公司已经做好了现成的dll组件专门用于发送邮件,功能很强大,.net里面主要用到这2个dll
Dimac.JMail.dll
Dimac.JMail.Smtp.dll
网上有很多这关于JMail的文章
这2个dll和相关说明的下载地址:http://download.csdn.net/download/ccsnetmm/1903959。
相关文章推荐
- 在Asp.Net中使用SmtpMail发送邮件的方法:实例
- 用ASP.NET发送邮件
- asp.net 实现发送邮件(根据国家读取对应国家语言的邮件内容)
- ASP.NET读取配置文件发送邮件
- asp.net 邮件发送
- asp.net 2.0 如何发送邮件
- asp.net实现发送邮件(转自百度知道)
- 详解Asp.Net定时发送邮件方法
- 用ASP.NET 做自己的邮件发送系统
- Asp.Net发送邮件详解
- 用ASP.NET做的个性化的邮件发送系统
- asp.net发送邮件代码!
- 旧版asp.net 发送邮件代码
- ASP.Net环境下使用Jmail组件发送邮件[收藏]
- asp.net发送邮件获取已读回执的方法(转,未验证)
- asp.net利用SmtpClient发送邮件
- ASP.Net 2.0 发送邮件的代码
- asp.net三种发送邮件代码(stmp,无组件邮件发送)
- asp.net 带附件发送邮件
- ASP.NET——邮件发送