数据库邮件一二三

来源:互联网 发布:淘宝钻号哪里看 编辑:程序博客网 时间:2024/03/28 19:23

数据库邮件是SqlServer2005的新增功能,用于替代以前的SQLMail。

一、数据库邮件的配置:打开SSMS,,以管理员身份连接到某个要管理的数据库实例,在“管理”菜单下有“数据库邮件”项。在该项名称上点右键,从弹出的菜单中选择“配置数据库邮件”,会弹出“数据库邮件配置向导“,根据向导可以很方便的完成配置。数据库邮件默认是不打开的,如果要使用该功能,可从 sqlserver2005外围应用配置器中点击”功能的外围应用配置器“,从Database Engine中选中数据库邮件,将“启用数据库邮件存储过程”选中即可。不过,当你打开数据库向导时,它有会提示你并帮你自动打开该功能。在配置数据库邮件时,需要创建配置文件并指定smtp。在使用时需要引用正确的配置文件名,而smtp也应该正确设置并测试其可用。为提高有效性,最好添加两个以上的配置文件。

二、应用数据库邮件。这是一个管理辅助工具,主要作用就是在第一时间将数据中运行中一些管理员想知道的信息发送到指定的邮箱。可以在任务、作业等管理工具中指定配置好的数据库邮件(配置文件名称作为标识)。也可在程序中指定数据库邮件来发送所需要的信息(比如错误)到指定邮箱,测试了下面的代码,可以成功收到邮件:

SqlConnection cn = new SqlConnection("data source=.;initial catalog=msdb;integrated security=SSPI");
SqlCommand cmd 
= new SqlCommand("sp_send_dbmail", cn);
cmd.CommandType 
= CommandType.StoredProcedure;
cmd.Parameters.Add(
new SqlParameter("@profile_name",SqlDbType.VarChar));
cmd.Parameters.Add(
new SqlParameter("@recipients",SqlDbType.VarChar));
cmd.Parameters.Add(
new SqlParameter("@body",SqlDbType.VarChar));
cmd.Parameters.Add(
new SqlParameter("@subject", SqlDbType.VarChar));
cmd.Parameters[
"@profile_name"].Value = "MySqlMail";//数据库邮件配置文件
cmd.Parameters["@recipients"].Value = "xygaofeng@gmail.com";
cmd.Parameters[
"@body"].Value = "nice to meet you";
cmd.Parameters[
"@subject"].Value = "very good";
cn.Open();
int rows = cmd.ExecuteNonQuery();
cn.Close();

在这段代码中,主要用到了sp_end_dbmail系统存储过程,它有许多参数供使用,具体可以参考文档。

三、配置完smtp后,可以发送一封测试邮件,以验证其有效性。具体方法是:在“数据库邮件”项上点右键,选择“发送测试电子邮件”,选择要测试的配置文件,并填写收件人Email,看能不能成功收到该邮件。这个smtp可以用公司的邮件服务器,当然也可以用商业网站提供的免费或收费的服务器。