【通知】
【通知】充值首选支付宝,未及时到账,请邮件联系 youjianqunfa@qq.com 备注用户名。
当前位置:首页 > 邮件群发问答百科 > 正文内容
七月10日

时间:2020-07-10 17:43

关于邮件群发

0
分类:邮件群发问答百科 | 评论:0人 | 浏览:42次   
      这两天在给网站弄邮件群发功能,关于实现发邮件就是利用.Net自身提供的System.Web.Mail空间中的一些方法实现,下面先列出仅仅发邮件的代码:

关于邮件群发                MailMessage objMessage=new MailMessage();
关于邮件群发                objMessage.To
=”对方邮箱”;
关于邮件群发                objMessage.From
=邮箱;
关于邮件群发                objMessage.Subject
=”邮件标题”;
关于邮件群发
//                objMessage.Attachments.Add(new MailAttachment(“”));//发送附件
关于邮件群发
                objMessage.BodyFormat=MailFormat.Html;
关于邮件群发                objMessage.BodyEncoding
=Encoding.GetEncoding(GB2312);
关于邮件群发                objMessage.Body
=””邮件内容;
关于邮件群发
//                objMessage.Fields.Add(“http://schemas.microsoft.com/cdo/configuration/smtpauthenticate“,1);
关于邮件群发
//                objMessage.Fields.Add(“http://schemas.microsoft.com/cdo/configuration/sendusername“, “username”);
关于邮件群发
//                objMessage.Fields.Add(“http://schemas.microsoft.com/cdo/configuration/sendpassword“, “password”);
关于邮件群发
                SmtpMail.SmtpServer = 192.192.1.53;
关于邮件群发                SmtpMail.Send(objMessage);

由于我用的本机的SMTP服务所以不用身份验证,就注释掉了下面的三行。这样就能把邮件发送出去了,然后就考虑群发怎么实现,我参考的是CS里邮件群发的代码。是先把想要发送的所有邮件存储到数据库中,然后让单独的一个线程在后台自己发送,这样就避免的我们等待的过程,我们只需把邮件存到数据库里就显示成功。
      我是在Global.asax的Application_Start方法里初始化一个Timer,注意这里的Timer是System.Threading命名空间中的类,使用 TimerCallback 委托指定希望 Timer 执行的方法。计时器委托在构造计时器时指定,并且不能更改。此方法不在创建计时器的线程中执行,而是在系统提供的线程池线程中执行。更具体的解释请参照MSDN。然后自己定义一个callback方法调用发送邮件的方法。
      其实只要会了发送一封就会群发了,循环就行,由于我是把发送的所有邮件都放到数据库里,所以再循环的时候发送一封就删除一封,失败的保留。当循环一遍后,假若有失败为发送成功的会继续保留在数据库里,在下一次出发Timer时会发送,当然最好设置下发送次数,比方说发送十次不成功就不再发送,然后把邮件从数据库中删除。大量发送本人还没测试,慢慢完善。在这只提供个思路。

  • 评论:(0)
  • 有图有真相

已有 0 位网友发表了一针见血的评论,你还等什么?

你必须 登录 才可以留言.