编程方面:
可以用邀月提供的多线程方法,以Thread.Sleep(3000)方法控制每个线程的休息时间。如果你还不熟悉多线程编程,可以先使用BackgroundWorker组件入手实现,参看:http://www.cnblogs.com/happy555/archive/2007/11/07/952315.html
还有一种方法更为简单,就是直接在代码中插入Thread.Sleep(3000),来实现暂停效果,但是这样你会感觉你的用户界面假死了,因为Thread.Sleep(3000)会使当前线程休眠,而你在窗口界面所在的线程中执行,界面也就没有响应了。
第三种方法与上一种方法差不多,但是不会使界面失去响应,即Application.DoEvents()方法,此方法可以让界面线程执行正在等待执行的一系列事件,然后再执行下面的语句,你可以封装这样一个方法来实现延迟执行代码效果:
public void 延迟(int 毫秒)
{
var t=DateTime.Now.AddMilliseconds(毫秒);
while(DateTime.Now<t)Application.DoEvents();
}
使用时只需:
语句1……;
语句2……;
延迟(6000);
语句3……
这样就可以实现延迟。
方案方面:
各个免费邮箱的smtp服务都是有不同限制的,有些是限制每天的发送数量,有些是限制每小时发送数量,有些是限制连续发送间隔时间。
同一网站注册多个账号往往也不起作用,因为服务器一般都是以IP地址作为判断依据。
在多个网站注册能够较大程度的降低单个smtp服务的使用频率,有助于减少被冻结、封停的几率。
更好的方案应该是在本机或自有服务器上自设smtp服务,然后通过自己的服务发送,就没有什么限制了,但应注意,如果频繁发送垃圾邮件的话,还是会被各个邮箱服务商列入黑名单,拒收你的邮件的。
代码看不到。
给两个思路:
1、配置多个SMTP服务器账号,群发软件一般般会自动交替使用,这样的话,在每个SMTP服务器看来,你的发送就不是连续的了,你也就不容易被封掉。主流的支持SMTP发送的邮箱,不论是免费的还是收费的,每天的发送量大概在100到400左右。每天适当控制每个Email帐号(即发送服务器)发送200封左右;适可而止,不要过分发送
2、你完全可以作为windows服务,在app.config中自由设置间隔的时间。
3、一定要在cs程序中运行。可以参考:
Thread th = new Thread(new ThreadStart(你的方法名称));
th.Priority = ThreadPriority.AboveNormal;
th.Start();
Thread.Sleep(3000);
补充:这里有关于windows service的演示:
http://www.cnblogs.com/downmoon/archive/2009/09/16/1567643.html
支持以上回答
用线程控制
用线程来实现。