利用SQL SERVER2005发送邮件 (一)

2014-11-24 08:40:57 ? 作者: ? 浏览: 0

早在sql server 2000中可以通过sql mail给指定的邮件地址发邮件。SQL SERVER 2005中我们仍外可以用sql server2000中的SQLMAIl功能

发送邮件,但SQL SERVER2005中又提供一个新数据库邮件功能也可以发送和接收邮件。这里以数据库邮件为例进行说明。

为了安全起见,微软将数据中的一些可能带来安全隐患的一些功能组件禁用掉了,数据库邮件和SQL MAIL都在被禁用之列,因些第一步是通

过外围配置器将这两个功能组件启用。启用之后进入SQL SERVER2005管理界面(SQL SERVER 2005 MANGEMENT STUDIO)找到管理节点,就可以找

到数据库邮件子项,在右键菜单中会有一个"配置数据库邮件"菜单,按照步骤先建立配置文件,然后创建账号,保存退出。在右键菜单的第二

项"发送测试邮件",在弹出的窗口中输入接收的邮件地址,发送就可以。

我们可以在SQL中通过刚才的配置来收发邮件。在sql server 2000中,通过xp_snedmail以及以xp_开头的存储过程来发送和管理邮件。数据

邮件用的是在msdb库sp开头的一些存储过程来收发和管理邮件。

sp_send_dbmail发送电子邮件年,用法如下:

sp_send_dbmail [ [ @profile_name = ] 'profile_name' ]

[ , [ @recipients = ] 'recipients [ ; ...n ]' ]

[ , [ @copy_recipients = ] 'copy_recipient [ ; ...n ]' ]

[ , [ @blind_copy_recipients = ] 'blind_copy_recipient [ ; ...n ]' ]

[ , [ @subject = ] 'subject' ]

[ , [ @body = ] 'body' ]

[ , [ @body_format = ] 'body_format' ]

[ , [ @importance = ] 'importance' ]

[ , [ @sensitivity = ] 'sensitivity' ]

[ , [ @file_attachments = ] 'attachment [ ; ...n ]' ]

[ , [ @query = ] 'query' ]

[ , [ @execute_query_database = ] 'execute_query_database' ]

[ , [ @attach_query_result_as_file = ] attach_query_result_as_file ]

[ , [ @query_attachment_filename = ] query_attachment_filename ]

[ , [ @query_result_header = ] query_result_header ]

[ , [ @query_result_width = ] query_result_width ]

[ , [ @query_result_separator = ] 'query_result_separator' ]

[ , [ @exclude_query_output = ] exclude_query_output ]

[ , [ @append_query_error = ] append_query_error ]

[ , [ @query_no_truncate = ] query_no_truncate ]

[ , [ @mailitem_id = ] mailitem_id ] [ OUTPUT ]

sp_send_mail 返回值1表示成功,0表示失败

sp_send_dbmail参数解释

[ @profile_name = ] 'profile_name'

发送邮件的配置文件的名称。profile_name 的类型为sysname,默认值为NULL。profile_name 必须是现有数据库邮件配置文件的名称。如果

未指定profile_name,则sp_send_dbmail 使用当前用户的默认专用配置文件。如果该用户没有默认专用配置文件,sp_send_dbmail 会使用

msdb 数据库的默认公共配置文件。如果用户没有默认的专用配置文件,而且数据库也没有默认的公共配置文件,则必须指定@profile_name。

[ @recipients = ] 'recipients'

要向其发送邮件的电子邮件地址列表,以分号分隔。收件人列表的类型为varchar(max)。虽然此参数是可选参数,但是必须至少指定

@recipients、@copy_recipients 或@blind_copy_recipients 中的一个,否则sp_send_dbmail 将返回错误。

[ @copy_recipients = ] 'copy_recipients'

要向其抄送邮件的电子邮件地址列表,以分号分隔。抄送件收件人列表的类型为varchar(max)。虽然此参数是可选参数,但是必须至少指定

@recipients、@copy_recipients 或@blind_copy_recipients 中的一个,否则sp_send_dbmail 将返回错误。

[ @blind_copy_recipients = ] 'blind_copy_recipients'

要向其密件抄送邮件的电子邮件地址列表,以分号分隔。密件副本收件人列表的类型为varchar(max)。虽然此参数是可选参数,但是必须至少

指定@recipients、@copy_recipients 或@blind_copy_recipients 中的一个,否则sp_send_dbmail 将返回错误。

[ @subject = ] 'subject'

电子邮件的主题。主题的类型为nvarchar(255)。如果未指定主题,则默认为SQL Server Message。

[ @body = ] 'body'

电子邮件的正文。邮件正文的类型为nvarchar(max),默认值为NULL。

[ @body_format = ] 'body_format'

邮件正文的格式。该参数的类型为varchar(20),默认值为NULL。如果已指定,则待发邮件的标头设置会指示邮件正文具有指定格式。该参数

可能包含下列值之一(默认为TEXT):

TEXT

HTML

[ @importance = ] 'importance'

邮件的重要性。该参数的类型为varchar(6)。该参数可能包含下列值之一(默认值为Normal):

Low

Normal

High

[ @sensitivity = ] 'sensitivity'

邮件的敏感度。该参数的类型为varchar(12)。该参数可能包含下列值之一(默认值为Normal):

Normal

Personal

Private

Confidential

[ @file_attachments = ] 'file_attachments',

电子邮件附件的文件名列表,以分号分隔。必须使用绝对路径指定列表中的文件。附件列表的类型为nvarchar(max)。

[ @query = ] 'query'

要执行的查询。查询结果可以作为文件附加,或包含在电子邮件的正文中。查询的类型为nvarchar(max),并且可以包含任何

-->

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: