- using System.Net.Mail;//引入这个命名空间
- 1.同步发送,程序将被阻塞
-
1 protected void Button1_Click(object sender, EventArgs e)
2 {
3 string path = Server.MapPath("~/uploadfiles/" + FileUpload1.FileName);//FileUpload1控件
4 FileUpload1.SaveAs(path);//保存上传的文件
5 MailMessage mail = new MailMessage();
6 mail.From = new MailAddress("xxx@qq.com", "发件人");//发件人地址,第二个参数表示发件人,可不要,
7 mail.To.Add(new MailAddress("xxxx@126.com"));//收件人地址
8 mail.Priority = MailPriority.High; //优先级
9 mail.Subject = "主题-发送时间:" + DateTime.Now;//主题
10 mail.Body = "<a href='http://www.qq.com'>邮件内容</a>";//发送的正文
11 mail.IsBodyHtml = true;//是否支持html的
12 Attachment MsgAttach = new Attachment(path);//获取刚刚上传的文件的地址,
13 mail.Attachments.Add(MsgAttach);//添加到附件
14 SmtpClient server = new SmtpClient();//邮箱服务器对象
15 server.Host = "smtp.qq.com";//服务器主机
16 server.Credentials = new System.Net.NetworkCredential("pwd", "xxxxxx");//个人账号和密码
17 server.Send(mail);
18
19 //异步发送, 会进入回调函数SendCompletedCallback,来判断发送是否成功
20
21 } - 2.异步发送 // 异步发送必须在:<%@ Page%>添加Async="true"
-
1 protected void Button2_Click(object sender, EventArgs e)
2 {
3 try
4 {
5 MailMessage mail = new MailMessage();
6 mail.From = new MailAddress("xxx@qq.com", "发件人");
7 mail.To.Add(new MailAddress("xxx@126.com"));
8 mail.Subject = "主题-发送时间:" + DateTime.Now;
9 mail.Body = "<a href='http://www.qq.com'>邮件内容</a>";
10 mail.IsBodyHtml = true;
11
12 SmtpClient server = new SmtpClient();
13 server.Host = "smtp.qq.com";
14 server.Credentials = new System.Net.NetworkCredential("pwd", "xxxxxx");
15 server.SendCompleted += new SendCompletedEventHandler(SendCompletedCallback);//回调函数
16 string userState = "测试";
17 server.EnableSsl = true;
18 server.SendAsync(mail, userState);
19 ClientScript.RegisterClientScriptBlock(this.GetType(), "success", "<script>alert('发送成功')</script>");
20 }
21 catch(SmtpException ex)
22 {
23 ClientScript.RegisterClientScriptBlock(this.GetType(), "fail", "<script>alert('发送失败,原因是:"+ex.Message+"')</script>");
24 }
25 private static void SendCompletedCallback(object sender, System.ComponentModel.AsyncCompletedEventArgs e)
26 {
27
28 if (e.Cancelled) //邮件发送被取消
29 {
30 }
31
32 if (e.Error != null) //邮件发送失败
33 {
34 }
35
36 else //发送成功
37 {
38 }
39
40 } - 当然有外国公司已经做好了现成的dll组件专门用于发送邮件,功能很强大,.net里面主要用到这2个dll
- Dimac.JMail.dll
- Dimac.JMail.Smtp.dll
- 网上有很多这关于JMail的文章
- 这2个dll和相关说明的下载地址:http://download.csdn.net/download/ccsnetmm/1903959。
ASP.NET -- 邮件发送
最新推荐文章于 2024-03-20 23:44:19 发布