自动化发送邮件的三种方式

一、sql触发器发送

二、winform程序后用任务计划发送

页面

//引用
using System.Data.Common;
using System.Data.SqlClient;
using System.Configuration;
using System.Data;
using System.Net.Mail;

//要发送的邮件
public static DataSet SendEmailList()
{
DataSet ds = new DataSet();
try
{
string str = ConfigurationSettings.AppSettings[“ConnectionString”];
SqlConnection conn = new SqlConnection(str);
conn.Open();
SqlCommand comm = new SqlCommand(“SendEmailList”, conn);
comm.CommandType = CommandType.StoredProcedure;
comm.ExecuteNonQuery();
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = comm;
da.Fill(ds);
conn.Close();

}
catch (Exception ex) { }
return ds;
}
public static bool SendMail(string form, string toMail, string title, string body, string SendEmailID)
{
bool result = false;

try
{
MailMessage email = new MailMessage();
email.From = new MailAddress(form);
//收件人
email.To.Add(toMail);
//主题
email.Subject = title;
//内容
email.Body = body;
//优先级
email.Priority = MailPriority.Normal;
//内容类型
email.IsBodyHtml = true;
SmtpClient client = new SmtpClient();
client.Send(email);
//再把状态改一下
string str = ConfigurationSettings.AppSettings[“ConnectionString”].ToString();
SqlConnection conn = new SqlConnection(str);
conn.Open();
SqlCommand comm = new SqlCommand(“SendEmailDelete”, conn);
//参数SendEmailID
comm.CommandType = CommandType.StoredProcedure;
comm.Parameters.Add(new SqlParameter("@SendEmailID", SqlDbType.NVarChar, 50));
comm.Parameters["@SendEmailID"].Value = SendEmailID.ToString();

comm.ExecuteNonQuery();

result = true;
}
catch (Exception ex)
{
result = false;
}

return result;
}

webconfig页面配置

配置程序

开始----程序----附件—系统工具—任务计划,双击添加任务,选择程序文件-----(程序生成的*.exe),管理员输入密码为登录密码,一直点下一步就行了

三、global

缺点,有人访问页面时,global才会运行

webconfig页面配置

global页面

void Application_Start(object sender, EventArgs e)
{
// 在应用程序启动时运行的代码
Timer t = new Timer(60000);//设计时间间隔,如果一个小时执行一次就改为3600000 ,这里一分钟调用一次
t.Elapsed += new ElapsedEventHandler(t_Elapsed);
t.AutoReset = true;
t.Enabled = true;

}
private void t_Elapsed(object sender, ElapsedEventArgs e)
{
Response.Write(“执行成功”);
//查询数据库
DataSet ds = Common.SendEmailList();
string FormEmail = ConfigurationManager.AppSettings[“UserEmail”];
string title = “会员申请网上注册失败”;

for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
string ToEmail = ds.Tables[0].Rows[i][“EmailAddress”].ToString();
string body = “你的网上注册失败,错误原因:”;
body += ds.Tables[0].Rows[i][“Cause”].ToString() + “
”;
body += “请查看资料修正”;
string SendEmailID = ds.Tables[0].Rows[i][“SendEmailID”].ToString();
Common.SendMail(FormEmail, ToEmail, title, body, SendEmailID);
}
}

winform页面

//引用
using System.Data.Common;
using System.Data.SqlClient;
using System.Configuration;
using System.Data;
using System.Net.Mail;

//要发送的邮件
public static DataSet SendEmailList()
{
DataSet ds = new DataSet();
try
{

string str = ConfigurationManager.ConnectionStrings[“ConnectionString”].ConnectionString;
SqlConnection conn = new SqlConnection(str);
conn.Open();
SqlCommand comm = new SqlCommand(“SendEmailList”, conn);
comm.CommandType = CommandType.StoredProcedure;
comm.ExecuteNonQuery();
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = comm;
da.Fill(ds);
conn.Close();
}
catch (Exception ex) { }
return ds;
}
public static bool SendMail(string form, string toMail, string title, string body,string SendEmailID)
{
bool result = false;

try
{
MailMessage email = new MailMessage();
email.From = new MailAddress(form);
//收件人
email.To.Add(toMail);
//主题
email.Subject = title;
//内容
email.Body = body;
//优先级
email.Priority = MailPriority.Normal;
//内容类型
email.IsBodyHtml = true;
SmtpClient client = new SmtpClient();
client.Send(email);
//再把状态改一下
string str = ConfigurationManager.ConnectionStrings[“ConnectionString”].ConnectionString;
SqlConnection conn = new SqlConnection(str);
conn.Open();
SqlCommand comm = new SqlCommand(“SendEmailDelete”, conn);
//参数SendEmailID
comm.CommandType = CommandType.StoredProcedure;
comm.Parameters.Add(new SqlParameter("@SendEmailID", SqlDbType.NVarChar, 50));
comm.Parameters["@SendEmailID"].Value = SendEmailID.ToString();

comm.ExecuteNonQuery();

result = true;
}
catch (Exception ex)
{
result = false;
}

return result;
}

详细更多请关注Kewail官网:(www.kewail.com

猜你喜欢

转载自blog.51cto.com/14328827/2401827