如何设置sql server中的email

12/3/2006来源:其它邮件服务器软件人气:9987

环境:
1 局域网内的服务器
2 已经安装exchange server,其中邮件服务器与数据库是独立的2台服务器


首先需要局域网内有Exchange Server,虽然sqlserver上的帮助说:只要有一个遵从扩展 MAPI 的邮件服务器就行,但是我也不知道除了Exchange Server,还有什么服务器支持MAPI,这纯粹是微软的东西!!先给你介绍一下Exchange Server的设置方式,其他的邮件服务器是否能设置,

1。使用 MSSQLServer 服务会用到的用户帐户登录到 Microsoft Windows NT%26reg; 4.0 或 Windows%26reg; 2000 上。该用户帐户必须是本地计算机的管理员和域帐户。
2。确认 Exchange Server 客户端 (Exchnge32.exe) 或 Microsoft Outlook%26#8482; 客户端 (Outlook.exe) 能够连接到 Exchange Server 而且能够发送电子邮件。如果使用 Outlook,确保 Outlook 安装时选择了用于企业或工作组选项。
3。确认所用的 Exchange Server 配置文件中没有个人消息存储 (.pst)。Exchange Server 配置文件的名字不应超过 32 个字符。
4。在服务选项卡上,确认 Microsoft Exchange Server 和个人通讯簿是唯一可用的服务,然后单击发送选项卡。确认发送到框中选定的内容是 Exchange Server 中的邮箱,它应该有一个类似于邮箱 -<友好的用户名>的名字(其中<友好的用户名>是在第一步中登录到 Windows NT 4.0 或 Windows 2000 的用户名)。
5。要运行带有 Exchange Server 的SQL 邮件,MSSQLServer 服务必须在第一步中登录的同一个用户帐户下运行。在控制面板中,双击服务,选择 MSSQLServer 服务,然后单击启动。
6。确认SQL 邮件的配置文件是否正确。在 SQL Server 企业管理器中,展开服务器,展开支持服务文件夹,选择SQL 邮件,然后用右键单击。单击属性,然后在常规选项卡上,确保配置文件名框中指定的配置文件名正确。(事件探查器名必须与第三步中用到的配置文件名匹配。)单击测试,验证配置文件设置正确。
7。如果SQL 邮件无法启动(例如,显示错误信息指出配置文件不正确),请检查设置确保未将 Outlook ExPRess 设置为默认的电子邮件客户程序。在控制面板中双击Internet选项。在程序选项卡中,验证 Outlook Express 不在电子邮件组合框中。如果不得不将默认的电子邮件客户程序更改为 Outlook Express 以外的客户程序,那么,可能需要先验证SQL 邮件能够用邮件配置文件启动,然后再停止并重新启动 MSSQLServer 服务。
在有些情况下,邮件的配置文件可能会损坏而且SQL 邮件将无法使用它。要更正这个问题,需要把配置文件复制到另一个文件名下,或重新创建配置文件。
8。如果用来启动 Microsoft SQL Server%26#8482; 的帐户没有权限访问 Exchange 服务器,那么就无法使用SQL 邮件。执行 xp_cmdshell 来测试 SQL Server 对 Exchange Server 的访问权限,它执行与SQL 邮件相同的权限。使用下面的命令测试对服务器的连接,假定 Exchange Server 位于名为MyServer的计算机上。

xp_cmdshell NET USE \MyServeripC$

如果这个命令无法正常执行,说明第三步未正确完成。

生成“sql邮件”的配置文件,其实跟生成outlook的邮件配置文件是一样的。只要给outlook配置好了邮件配置文件,sql邮件就可以直接拿来用,唯一要注意的是登录到数据库服务器的用户名一定要和启动sqlserver服务的用户名一致,因为sqlserver在试用sql邮件时,使用的是启动服务的那个帐号。
具体的配置方法就是在控制面板中,双击邮件图标,来创建和配置或者复制现有的邮件配置文件。然后在企业管理器中展开支持服务项,右击SQL 邮件项,然后单击属性菜单项。在配置文件名列表中,键入或选择为 SQL 邮件配置的邮件配置文件。

使用SQL Mail收发和自动处理邮件
SQL SERVER提供了通过EXCHANGE或OUTLOOK收发邮件的扩展存储过程,下面将这几个过程简单的介绍一下。

一、启动SQL Mail

xp_startmail @user,@passWord

@user和@password都是可选的

也可打开Enterprise Manager中的Support Services,在SQL Mail上单击右键打开右键菜单,然后按Start来启动

二、停止SQL Mail

xp_stopmail

也可用上述方法中的菜单里的Stop来停止

三、发送邮件

xp_sendmail {[@recipients =] recipients [;...n]}
[,[@message =] message]
[,[@query =] query]
[,[@attachments =] attachments]
[,[@copy_recipients =] copy_recipients [;...n]
[,[@blind_copy_recipients =] blind_copy_recipients [;...n]
[,[@subject =] subject]
[,[@type =] type]
[,[@attach_results =] attach_value]
[,[@no_output =] output_value]
[,[@no_header =] header_value]
[,[@width =] width]
[,[@separator =] separator]
[,[@echo_error =] echo_value]
[,[@set_user =] user]
[,[@dbuse =] database]

其中@recipients是必需的

参数说明:

参数 说明
@recipients 收件人,中间用逗号分开
@message 要发送的信息
@query 确定执行并依附邮件的有效查询,除触发器中的插入表及删除表外,此查询能引用任何对象
@attachments 附件
@copy_recipients 抄送
@blind_copy_recipients 密送
@subject 标题
@attach_results 指定查询结果做为附件发送
@no_header 不发送查询结果的列名
@set_user 查询联接的用户名,默认为Guset
@dbuse 查询所用的数据库,默认为缺省数据库

四、阅读邮件收件箱中的邮件

xp_readmail [[@msg_id =] message_number] [, [@type =] type [OUTPUT]]
[,[@peek =] peek]
[,[@suppress_attach =] suppress_attach]
[,[@originator =] sender OUTPUT]
[,[@subject =] subject OUTPUT]
[,[@message =] message OUTPUT]
[,[@recipients =] recipients [;...n] OUTPUT]
[,[@cc_list =] copy_recipients [;...n] OUTPUT]
[,[@bcc_list =] blind_copy_recipients [;...n] OUTPUT]
[,[@date_received =] date OUTPUT]
[,[@unread =] unread_value OUTPUT]
[,[@attachments =] attachments [;...n] OUTPUT])
[,[@skip_bytes =] bytes_to_skip OUTPUT]
[,[@msg_length =] length_in_bytes OUTPUT]
[,[@originator_address =] sender_address OUTPUT]]

参数说明:

参数 说明
@originator 发件人
@subject 主题
@message 信息
@recipients 收件人
@skip_tytes 读取邮件信息时跳过的字节数,用于顺序获取邮件信息段。
@msg_length 确定所有信息的长度,通常与@skip_bytes一起处理长信息

五、顺序处理下一个邮件

xp_findnextmsg [[@msg_id =] message_number [OUTPUT]]
[,[@type =] type]
[,[@unread_only =] unread_value])

六、删除邮件

xp_deletemail {message_number}

如果不指定邮件编号则删除收件箱中的所有邮件

七、自动处理邮件

sp_processmail [[@subject =] subject]
[,[@filetype =] filetype]
[,[@separator =] separator]
[,[@set_user =] user]
[,[@dbuse =] dbname]