62,268
社区成员
发帖
与我相关
我的任务
分享
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.ServiceProcess;
using System.Text;
using System.Data.SqlClient;
using System.Net.Mail;
namespace WindowsService_CheckNewRecord
{
public partial class Service1 : ServiceBase
{
public Service1()
{
InitializeComponent();
}
protected override void OnStart(string[] args)
{
// TODO: 在此处添加代码以启动服务。
timer1.Start();//timer1是一个计时器,是从工具箱的组件中拖的
}
protected override void OnStop()
{
// TODO: 在此处添加代码以执行停止服务所需的关闭操作。
}
private void timer1_Tick(object sender, EventArgs e)
{
string strConn = "连接数据库的字符串";
SqlConnection sqlcon = new SqlConnection(strConn);
string strAdp = "select * from tb_mail where DeletedTime is null";//tb_mail表结构(收件人地址,邮件主题,邮件内容,删除时间)
SqlDataAdapter sqladp = new SqlDataAdapter(strAdp,sqlcon);
DataSet ds = new DataSet();
sqladp.Fill(ds);
if (ds.Tables[0].Rows.Count > 0)
{
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
string toEmail = ds.Tables[0].Rows[i]["ToEmail"].ToString();
string topic = ds.Tables[0].Rows[i]["Topic"].ToString();
string body = ds.Tables[0].Rows[i]["Body"].ToString();
SendEmail(toEmail,topic,body);//调用下面的函数
//发送完成后,把当前系统时间写入DeletedTime字段
DateTime now = System.DateTime.Now;
string strCmd = "update tb_mail set DeletedTime='"+now+"' where ToEmail='"+toEmail+"'";
SqlCommand sqlcmd = new SqlCommand(strCmd, sqlcon);
sqlcmd.ExecuteNonQuery();
}
}
}
//执行发送电子邮件的操作
private void SendEmail(string toEmail, string topic, string body)
{
MailAddress from = new MailAddress("发件人电子邮件地址");
MailAddress to = new MailAddress(toEmail);
MailMessage message = new MailMessage(from, to);
message.Subject = topic;
message.IsBodyHtml = true;
message.Body = body;
SmtpClient sc = new SmtpClient("邮件服务器名称");
sc.Credentials = new System.Net.NetworkCredential("发件人电子邮件地址", "发件人电子邮件的密码");
sc.Send(message);
}
}
}
CREATE TABLE dbo.birthdays
(
fullname VARCHAR(128),
email VARCHAR(128),
birthdate SMALLDATETIME
)
GO
INSERT birthdays VALUES('AB', 'ab@nonexists.com', '19740201')
INSERT birthdays VALUES('CB', 'cb@nonexists.com', '19870123')
INSERT birthdays VALUES('TC', 'tc@nonexists.com', '20011227')
GO
-- and include your own address, with today's date, for testing!
CREATE PROCEDURE dbo.proc_happyBirthday
AS
BEGIN
SET NOCOUNT ON
DECLARE @BCCList VARCHAR(8000)
SET @BCCList = ''
SELECT @BCCList = @BCCList + ';' + COALESCE(email, '')
FROM Birthdays
WHERE
MONTH(birthdate) = MONTH(GETDATE())
AND DAY(birthdate) = DAY(GETDATE())
SET @BCCList = SUBSTRING(@BCCList, 2, LEN(@BCCList))
EXEC master..xp_smtp_sendmail
@TO = 'you@you.com',
@BCC = @BCCList,
@from = 'someone@somewhere.com',
@subject = 'Happy Birthday to you!',
@message = 'You belong in a zoo!',
@server = 'smtp.yourdomain.com'
END
GO