自动发邮件的Windows服务解决方案
时间:2010-12-15 来源:惊悉是何年
构建一个Windows服务,在指定时间点,从配置文件中读取发件人信息(包括SMTP地址,用户名,密码等),定义好邮件的标题和内容,然后就可以发送。当然,你还得把这个Windows服务安装好,并配置成自动启动。
那么,接下来,我们先构建一个Windows服务(用一个TImer控件控制定时刷新):
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Diagnostics; using System.ServiceProcess; using System.Text; using System.Net.Mail; using System.Net; using System.Configuration; namespace MailServer { public partial class Service1 : ServiceBase { public Service1() { InitializeComponent(); } protected override void OnStart(string[] args) { //当时间的分钟为偶数时 while (DateTime.Now.Second % 2 == 0) { //定义邮件客户端 SmtpClient client = new SmtpClient( ConfigurationManager.AppSettings["smtpClient"], int.Parse(ConfigurationManager.AppSettings["smtpProt"])); //定义发送方邮件的地址和密码 client.Credentials = new NetworkCredential( ConfigurationManager.AppSettings["from_address"], ConfigurationManager.AppSettings["from_password"]); //定义邮件发送方及接收方 MailMessage mail = new MailMessage( new MailAddress(ConfigurationManager.AppSettings["from_address"], ConfigurationManager.AppSettings["from_displayName"]), new MailAddress(ConfigurationManager.AppSettings["to_address"], ConfigurationManager.AppSettings["to_displayName"])); //定义邮件标题 mail.Subject = "测试邮件[" + DateTime.Now.ToString() + "]"; //定义邮件内容 mail.Body = Guid.NewGuid().ToString(); //发送邮件 client.Send(mail); } } protected override void OnStop() { // TODO: 在此处添加代码以执行停止服务所需的关闭操作。 } } }
-------------------
配置文件:
<?xml version="1.0" encoding="utf-8" ?> <configuration> <appSettings> <add key="smtpClient" value="smtp.126.com"/> <add key="smtpProt" value="25"/> <add key="from_address" value="请输入你的邮箱地址如:[email protected]"/> <add key="from_displayName" value="Mr.Yang"/> <add key="from_password" value="请输入你的邮箱密码"/> <add key="to_address" value="[email protected]"/> <add key="to_displayName" value="**先生"/> </appSettings> </configuration>
制作Windows服务安装程序请参考:ttp://www.cnblogs.com/tuyile006/archive/2006/11/27/573654.html
相关阅读 更多 +