SQL Server中发送邮件的新方式

原创 2004年09月14日 00:01:00

说是新方式,其实也是早就用到的技术了,所以放上来!

在.NET中,大家知道,可以使用System.Web.Mail来发送邮件。在Framework 1.1下支持验证。

private void Page_Load(object sender, System.EventArgs e)
{
       MailMessage mail = new MailMessage();
       mail.To = "
me@mycompany.com";
       mail.From = "
you@yourcompany.com";
       mail.Subject = "this is a test email.";
       mail.Body = "Some text goes here";
       mail.Fields.Add("
http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1"); //basic authentication
       mail.Fields.Add("
http://schemas.microsoft.com/cdo/configuration/sendusername", "my_username_here"); //set your username here
      mail.Fields.Add("
http://schemas.microsoft.com/cdo/configuration/sendpassword", "super_secret"); //set your password here

    SmtpMail.SmtpServer = "mail.mycompany.com";  //your real server goes here
    SmtpMail.Send( mail );
}

以前我曾写过在.NET下发送邮件的方法,详见:

http://dev.csdn.net/develop/article/17/17189.shtm

 

SQL Server中,我们一般使用SQL本身的邮件发送方式,但需要配置Exchage Server、Outlook等,也是一个比较繁琐的事情。很多人抱怨说配置不成功。

其实,我们可以在 SQL Server中创建 OLE 对象实例,调用IIS SMTP自带的发送组件来实现邮件发送

我们建立这个存储过程,你需要修改的地方是,SmtpServer的名字

Create PROCEDURE sys_sendmail @From varchar(100) , @To varchar(100) , @Bcc varchar(500), @Subject varchar(400)=" ", @Body ntext =" "

AS

Declare @object int
Declare @hr int

EXEC @hr = sp_OACreate 'CDO.Message', @object OUT

EXEC @hr = sp_OASetProperty @object, 'Configuration.fields("http://schemas.microsoft.com/cdo/configuration/sendusing").Value','2'
EXEC @hr = sp_OASetProperty @object, 'Configuration.fields("
http://schemas.microsoft.com/cdo/configuration/smtpserver").Value', 'smtp.163.com'

--下面三条语句是smtp验证,如果服务器需要验证,则必须要这三句,你需要修改用户名和密码
EXEC @hr = sp_OASetProperty @object, 'Configuration.fields("
http://schemas.microsoft.com/cdo/configuration/smtpauthenticate").Value','1'
EXEC @hr = sp_OASetProperty @object, 'Configuration.fields("
http://schemas.microsoft.com/cdo/configuration/sendusername").Value','lihonggen0'
EXEC @hr = sp_OASetProperty @object, 'Configuration.fields("
http://schemas.microsoft.com/cdo/configuration/sendpassword").Value','xxx'

EXEC @hr = sp_OAMethod @object, 'Configuration.Fields.Update', null
EXEC @hr = sp_OASetProperty @object, 'To', @To
EXEC @hr = sp_OASetProperty @object, 'Bcc', @Bcc
EXEC @hr = sp_OASetProperty @object, 'From', @From
EXEC @hr = sp_OASetProperty @object, 'Subject', @Subject

EXEC @hr = sp_OASetProperty @object, 'TextBody', @Body
EXEC @hr = sp_OAMethod @object, 'Send', NULL

--判断出错
IF @hr <> 0
BEGIN
   EXEC sp_OAGetErrorInfo @object  
   RETURN @object
END
PRINT 'success'
EXEC @hr = sp_OADestroy @object

GO

注意:必须确保安装Smtp,可以访问CDO对象。

SQL Server 2008 R2中配置作业失败后邮件发送通知

SQL Server日常维护中难免会遇到作业失败的情况。失败后自然需要知道它失败了,除了例行检查可以发现出错以外,有一个较实时的监控还是很有必要的。比较专业的监控系统比如SCOM虽然可以监控作业执行情...
  • ctoygl
  • ctoygl
  • 2014年08月20日 11:35
  • 3134

SQL Server 2008 通过配置数据库邮件实现发送邮件功能

1.简单了解数据库邮件的概念和使用的传输协议及系统体系:       数据库邮件是从 SQL Server 数据库引擎中发送电子邮件的企业解决方案。通过使用数据库邮件,数据库应用程序可以向用户发送电...
  • zhanglong_longlong
  • zhanglong_longlong
  • 2014年12月31日 13:40
  • 1555

解析如何通过SQLServer的数据库邮件来发送邮件

通过SQL Server,也可以发送邮件,而且配置过程也是非常的简单,只需要你有邮箱就行。 下面就通过SQL Server来发送邮件。 一、启用Database Mail XPs功能。 查看Da...
  • xiaowei_sql
  • xiaowei_sql
  • 2016年03月08日 15:46
  • 1992

SQL SERVER发送邮件设定全篇

  • 2016年09月28日 17:10
  • 6KB
  • 下载

【Vegas原创】SQL Server调用CDO发送邮件

•用于某事件过期mail提醒。 操作步骤:   1.新建DailyJob,事件中填写:        exec dbo.EIP_DeadLine_Notice   2.  /***...
  • vegas_lee
  • vegas_lee
  • 2014年05月22日 15:41
  • 34

sql server 发送邮件

SQL Server 并没有内置邮件服务器(Mail Server),它跟我们发送邮件一样,需要用户名和密码通过 SMTP(Simple Message Transfer Protocol)去连接邮件...
  • zhuanghe_xing
  • zhuanghe_xing
  • 2012年06月11日 22:06
  • 343

利用Sql Server2005发送邮件概述

1,启用数据库邮件服务:打开SQL Server“配置工具”中的“外围应用配置器”,选择“功能的外围应用配置器”。在弹出的对话框中选择数据库邮件,并选择“启用数据库邮件存储过程”。 2,进入SQL...
  • fangaoxin
  • fangaoxin
  • 2011年08月31日 14:21
  • 571

sql server 2005 通过存储过程发送邮件

在 sa 系统帐户下运行。   1. 启用 SQL Server 2005 邮件功能。   use master go   exec sp_configure 'show advanced optio...
  • ymruseuse
  • ymruseuse
  • 2017年11月15日 15:23
  • 107

利用SQL Server发送邮件

配置SQL Server ,允许发邮件这里有两种方式一中是通过界面操作,一中是全代码操作。两种方式的结果是一样的,使用者可以先通过代码操作,在通过界面操作去查看 1代码操作 --1.配置数据 ex...
  • sumirry
  • sumirry
  • 2014年11月29日 11:53
  • 256

SQL Server2005 发送邮件

在以前的版本中,SQL Server通过Sql Mail来实现对电子邮件的收发等功能。在Sql Server2005中新增了数据库邮件功能,并且在今后的版本中将不再支持Sql Mail。原因在于SQL...
  • sunwork888
  • sunwork888
  • 2014年10月21日 14:31
  • 562
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SQL Server中发送邮件的新方式
举报原因:
原因补充:

(最多只允许输入30个字)