`
lovnet
  • 浏览: 6883537 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

SQL Server中发送邮件的新方式

阅读更多

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

在.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对象。

分享到:
评论

相关推荐

    在SQL200 SQLServer 2005和SQLServer 2008中设置发送邮件

    ### SQL Server 2005 和 2008 中设置发送邮件的知识点 #### SQL Server 2005 邮件通知设置步骤 在SQL Server 2005中,为了实现在作业(Job)运行后自动发送邮件通知,可以按照以下步骤进行设置: 1. **启用数据库...

    SQLserver发邮件

    ### SQL Server 发送邮件知识点详解 #### 一、配置概览 为了使 SQL Server 能够通过 Microsoft Exchange Server 发送邮件,需要进行一系列详细的配置步骤。以下是对标题和描述中的关键知识点的详细解释: #### 二...

    SQL Server 2012 配置数据库邮件

    邮件中可以包含查询结果,还可以包含来自网络中任何资源的文件。 2. 配置数据库邮件账户和配件文件 在配置数据库邮件之前,需要配置数据库邮件账户和配件文件。可以使用数据库邮件配置向导来配置数据库邮件账户和...

    使用SQL存储过程发送邮件

    SQL Server发送邮件机制 SQL Server提供了`sp_send_dbmail`系统存储过程来实现发送邮件的功能。这个内置的存储过程可以非常方便地用来发送文本或HTML格式的邮件。为了使用`sp_send_dbmail`,需要配置一个邮件配置...

    SQL Server 2005技术数据库邮件使用方式

    在SQL Server 2005中,数据库邮件(Database Mail)是一项重要的服务,允许用户直接从数据库发送电子邮件,极大地提高了数据库管理员和开发人员的工作效率。下面我们将深入探讨SQL Server 2005数据库邮件的配置和...

    SQL SERVER发送邮件设定全篇

    SQL SERVER发送邮件设定全篇备忘整理。

    sqlserver2008邮件配置

    在SQL Server 2008中,Database Mail是一项强大的功能,允许数据库管理员和开发者通过SQL Server发送电子邮件。当系统出现错误、警告或者特定作业完成时,可以自动发送通知,这对于实时监控和问题排查至关重要。然而...

    SqlServer2005配置数据库邮件

    ### SqlServer2005配置数据库邮件 #### 一、引言 随着信息技术的发展与企业需求的提升,高效地监控信息系统变得尤为重要。SQL Server 2005作为一款功能强大的数据库管理系统,提供了多种用于增强系统监控及自动化...

    MS SQL SERVER 2005数据库邮件配置详细步骤图解

    在本文中,我们将详细探讨如何配置MS SQL SERVER 2005进行数据库邮件的设置。这一功能使得数据库管理员可以通过SQL Server自动发送电子邮件,用于报警、报告或其他通信需求。以下是配置的详细步骤: 首先,需要安装...

    SQL Server数据库结构变动,自动发送邮件到指定用户

    "SQL Server数据库结构变动,自动发送邮件到指定用户" 本资源是一个SQL脚本,旨在记录数据库结构的变动,并自动发送邮件到指定用户。该脚本在SQL Server 2005下成功运行。 数据库结构变动日志表 该脚本首先创建了...

    新增用户就发送邮件和手机短信的SqlServer触发器

    根据给定的文件信息,我们可以深入探讨如何在SQL Server中创建一个触发器,该触发器在新用户添加到系统时自动发送电子邮件和短信通知。这一技术应用广泛于各种需要即时通知用户注册确认、账户激活或密码重置的场景中...

    SQlServer面试题

    - 数据库邮件是SQL Server中的一个组件,允许数据库管理员和应用程序通过SQL Server代理发送电子邮件。 - 它使用SMTP(简单邮件传输协议)服务器将邮件发送到互联网上的接收者。 2. **配置数据库邮件**: - 创建...

    SQL Server2008计划任务及邮件通知

    下面我们将详细探讨如何在SQL Server 2008中创建计划任务以及配置邮件通知。 1. **创建SQL Server代理作业** - 打开SQL Server Management Studio (SSMS),连接到你的SQL Server实例。 - 展开“SQL Server代理”...

    SQLServer2008-建立邮件报警机制-配置手册[归纳].pdf

    在SQL Server 2008中,建立邮件报警机制是一项重要的功能,它允许数据库管理员在特定事件发生时,如作业失败或数据异常,接收到及时的通知。以下将详细阐述如何配置这一机制。 首先,我们需要建立邮件服务器。这...

    SQLServer Job运行成功或失败时发送电子邮件通知的图文教程

    在SQL Server中,为了确保数据库作业(Job)的运行状态能够及时反馈给管理员,我们可以配置系统在Job执行成功或失败时自动发送电子邮件通知。以下是一个详细的步骤教程,以SQL Server 2005和2008为例: 1. **启用...

    SQL数据库发送邮件

    【SQL数据库发送邮件】是SQL Server提供的一种企业级解决方案,允许数据库应用程序直接向用户发送电子邮件。这个功能使得数据库管理员和开发人员能够轻松地传递查询结果、通知或任何其他与数据库相关的文件。 ### ...

    SQL Server数据库查询自动导出发送工具

    综上所述,"SQL Server数据库查询自动导出发送工具"是一个高效、便捷的数据处理解决方案,它将SQL Server查询、数据导出与邮件发送整合在一起,简化了工作流程,提升了工作效率。对于那些依赖于SQL Server数据库进行...

    sql server2005查看作业

    SQL Server 2005 中的作业机制提供了一种灵活的方式来执行自动任务,可以根据需要执行各种操作,例如备份数据库、执行存储过程、发送电子邮件等。通过查看作业执行的脚步类型,可以更好地理解作业的执行机制,从而更...

    SqlServer2005配置数据库邮件[归纳].pdf

    1. **启动数据库邮件服务**:在Sqlserver配置工具中启用SQL Server外围应用配置器,确保数据库邮件功能已经开启。 2. **打开SQL Server Management Studio**:连接到SQL Server实例,找到“数据库邮件”选项。 3. **...

Global site tag (gtag.js) - Google Analytics