本文实例讲述了asp.net实现的群发邮件功能。分享给大家供大家参考,具体如下:
测试时用的是qq邮箱,成功的前提是要在邮箱设置中打开smtp服务功能,如qq邮箱设置里面的账户选项卡里面把需要的功能勾上:
其他邮箱的话原理一样~~~~~~
代码如下 | 复制代码 |
usingSystem; usingSystem.Collections.Generic; usingSystem.Linq; usingSystem.Net.Mail; usingSystem.Web; namespaceMailSend { publicclassSendEmail { /// /// 群发邮件函数 /// ///发送的主题 ///发送的内容 ///收件人列表,通过|来分割开来,可以自己定义 ///发送附件的地址,获取了路径后上传 publicstaticvoidSend(stringsubject,stringbody,stringemail_list,stringFile_Path) { stringMailUser ="[email protected]";//我测试的是qq邮箱,其他邮箱一样的道理 stringMailPwd ="你的密码";//邮箱密码 stringMailName ="测试"; stringMailHost ="smtp.exmail.qq.com";//根据自己选择的邮箱来查询smtp的地址 MailAddress from =newMailAddress(MailUser, MailName);//邮件的发件人 MailMessage mail =newMailMessage(); //设置邮件的标题 mail.Subject = subject; //设置邮件的发件人 //Pass:如果不想显示自己的邮箱地址,这里可以填符合mail格式的任意名称,真正发mail的用户不在这里设定,这个仅仅只做显示用 mail.From = from; //设置邮件的收件人 stringaddress =""; //传入多个邮箱,用“|”分割开,可以自己自定义,再通过mail.To.Add()添加到列表 string[] email = email_list.Split('|'); foreach(stringnameinemail) { if(name !=string.Empty) { address = name; mail.To.Add(newMailAddress(address)); } } //设置邮件的抄送收件人 //这个就简单多了,如果不想快点下岗重要文件还是CC一份给领导比较好 //mail.CC.Add(new MailAddress("[email protected]", "尊敬的领导"); //设置邮件的内容 mail.Body = body; //设置邮件的格式 mail.BodyEncoding = System.Text.Encoding.UTF8; mail.IsBodyHtml =true; //设置邮件的发送级别 mail.Priority = MailPriority.Normal; //设置邮件的附件,将在客户端选择的附件先上传到服务器保存一个,然后加入到mail中 if(File_Path !="") { mail.Attachments.Add(newAttachment(File_Path)); mail.DeliveryNotificationOptions = DeliveryNotificationOptions.OnSuccess; } SmtpClient client =newSmtpClient(); //设置用于 SMTP 事务的主机的名称,填IP地址也可以了 client.Host = MailHost; //设置用于 SMTP 事务的端口,默认的是 25 client.Port = 25; client.UseDefaultCredentials =false; //这里才是真正的邮箱登陆名和密码, 我的用户名为 MailUser ,我的密码是 MailPwd client.Credentials =newSystem.Net.NetworkCredential(MailUser, MailPwd); client.DeliveryMethod = SmtpDeliveryMethod.Network; ////如果发送失败,SMTP 服务器将发送 失败邮件告诉我 mail.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure; //都定义完了,正式发送了,很是简单吧! client.Send(mail); } } } |
希望本文所述对大家asp.net程序设计有所帮助。