如题,如果用.net自带的邮件发送   量大了会很慢     ,我下了jmail来发    量大了还是不行  
可否用多线程来发送邮件?
我现在是在本地测试的,好像客户有自己的邮件服务器。
跪求群发列子。各位大哥大姐叔叔阿姨在线等。

解决方案 »

  1.   

    在服务器端,开发个winform(用web调用jmail的代码,开机启动winform的方法挺多的)定时邮件发送,算是比较简单的
      

  2.   

    System.Web.Mail
    静态方法Send就是用来发邮件的,群发就多次调用。
      

  3.   

    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.Security;
    using System.Data;
    using System.Data.Sql;
    using System.Data.SqlClient;
    using System.Text;
    using System.Configuration;
    using System.ComponentModel;
    using System.Reflection;
    using System.Net;
    using System.Net.Mail;        public void SendMail()
            {
                string squ = string.Format(@"select distinct Email from 邮件地址表");
                DataSet dseml = null;
                DataTable dteml = null;
                dseml = Enr.OpenSQL(squ);
                if (dseml != null) dteml = dseml.Tables[0];            MailMessage msg = new MailMessage();
                if (dteml != null && dteml.Rows.Count > 0)
                {
                    foreach (DataRow drel in dteml.Rows)
                    {
                        msg.To.Add(drel["Email"].ToString());
                    }
                }
                msg.From = new MailAddress("发件人@163.com", "ERP系统", Encoding.UTF8);
                msg.Subject = "***信息快迅***";//邮件标题
                msg.SubjectEncoding = Encoding.UTF8;//邮件标题编码
                string StrHtmls = "";
                StrHtmls = "<html><head><style type='text/css'>*{font-size:14px;font-family:Arial,Helvetica,sans-serif;}</style></head><body bgcolor='#CCFFFF'><H1>最新信息快迅</H1>";
                StrHtmls += "<br><table border='0'>";
                StrHtmls += "<tr><td>please reply at once and delete the e-mail, thanks.</td></tr></table></body></html>";
                msg.Body = StrHtmls;//邮件内容
                msg.BodyEncoding = Encoding.UTF8;//邮件内容编码
                msg.IsBodyHtml = true;//是否是HTML邮件
                msg.Priority = MailPriority.High;//邮件优先级
                SmtpClient client = new SmtpClient();
                client.Host = "mail.163.com";  //★★★邮件服务器SMTP
                object userState = msg;
                try
                {
                    client.Send(msg);
                }
                catch (SmtpException ex)
                {
                    throw ((Exception)(ex));
                }
            }
      

  4.   

    不要用jmail, ASP.NET 本身就有发邮件的命名空间, SQL SERVER 也有发邮件的存储过程,都很好用.
      

  5.   

    直接看源码:http://blog.csdn.net/lusend/article/details/7591207
      

  6.   

    写控制台吧。  放到win计划里。
      

  7.   

    写个windows服务,关键是代码如何稳定的去发邮件的问题,如果是想加快速度,个人感觉没有必要,第一是多线程去跑,不够稳定,写一个服务稳定的跑,效率也不低,关键是服务的写法问题,开一个后台线程,死循环,然后维护一个队列System.Collections.Queue,不停的扫描这个队列,这个队列有邮件的话,就发送,没邮件就跳出继续循环即可
      

  8.   

    楼主,这个不是发送快慢的问题,而是一个邮件群发整体方案的问题,你可以多试几个邮件服务器,就会考虑到很多的事情,比如你想在cc里面加邮件地址列表,这样可以多发出去几个,但是接收方的邮件规则有的时候会设置cc列表里邮件数超过10个则禁止接收此邮件,再有一个要是使用那些公共的电子邮件服务器,如网易、腾讯、新浪等,会在发送到某个阶段就会对你做出限制,甚至是封号,假如是自己公司有独立的邮件服务器,做没做好IP反向代理,有的时候即使做了IP反向代理,要是中国的IP,发送的邮件也会触发spam,因为中国大部分IP都会block掉的。
      

  9.   

    慢?是要快还是既要快而且还有定时 如果人数是固定的那可以 如果不是有点……我说的是用控制台写
    exe可以放到任务计划里跑的 这样就可以定时了 放到服务器里不然关机就不跑了 人数放到数组中循环遍历里面的user
    重新添加人都需要到程序中改的 既然这样就用控制台写吧 蛮简单的
    不过楼主说的速度就不知道了