存储过程实现邮件发送
测试环境:
1 Windows 2000 Server
2 SQL Server 2000+SP3
3 Microsoft Outlook (Office 2000)
准备一个Internet邮件帐户:
测试电子邮件帐户:test@163.com
Smtp服务 器 smtp.163.com
pop3服务器 pop.163.com
步骤一: 更改电子邮件配置
1 打开Microsoft Outlook 单击“工具”菜单中的“选项”,然后单击“邮件服务”选项卡。
2 单击“重新配置邮件支持”。
3 选择“用于企业或工作组”选项
4 重新启动Microsoft Outlook
步骤二: 添加配置文件
说明:如果之前您已经通过控制面版->邮件 选项添加过配置文件(比如,配置文件名:test),可省略以下1、2、3操作步骤
1 单击“工具”菜单中的“服务”,然后单击“添加”按钮。
2 选择"Internet 电子邮件",单击“确定”。
3 下面的步骤是设置电子邮件帐号,请参考Microsoft Outlook帮助文件,这里不再赘述。
4 利用配置好的电子邮件帐号收发邮件,确认配置成功。
步骤三: 配置MSSQLSERVER服务采用邮件配置文件
1 重新启动MSSQLSERVER服务(必须的,否则MSSQLSERVER服务检测不到上一步骤添加的配置文件)
2 打开企业管理器->展开服务器->支持服务->右击"邮件"->点击下拉框,你会发现
"Microsoft Outlook Internet Settings"选项(如果您通过控制面版->邮件 选项添加过配置文件,比如:配置文件名:test,那您将会发现 test选项),选中您配置好的配置文件,点击"测试".
如果弹出表示成功的对话框,那恭喜你,已经 大功告成了.
步骤四:享受你的劳动成果
要求以MSSQLSERVER服务采用的Windows帐号登录Windows 2000 Server,即你登录计算机所采用的帐号要和MSSQLSERVER服务采用的Windows帐号相同。
1 打开SQL Server的查询分析器
2 输入下列SQL语句,执行
exec master..xp_sendmail 'test@163.com','Hello,World!'
3 好了,去你的邮箱收邮件去吧!
邮件发送存储过程:
1![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
2
CREATE PROCEDURE usp_SendMail @To varchar(100) ,@Subject varchar(400)=' ', @Body varchar(8000) =' '
3![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
4
AS
5![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
6
Declare @object int
7
Declare @hr int
8![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
9
EXEC @hr = sp_OACreate 'CDO.Message', @object OUT
10![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
11
EXEC @hr = sp_OASetProperty @object, 'Configuration.fields("http://schemas.microsoft.com/cdo/configuration/sendusing").Value','2'
12
EXEC @hr = sp_OASetProperty @object, 'Configuration.fields("http://schemas.microsoft.com/cdo/configuration/smtpserver").Value', 'mail.idg-rbi.com.cn'
13![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
14
--下面三条语句是smtp验证,如果服务器需要验证,则必须要这三句,你需要修改用户名和密码
15
EXEC @hr = sp_OASetProperty @object, 'Configuration.fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate").Value','1'
16
EXEC @hr = sp_OASetProperty @object, 'Configuration.fields("http://schemas.microsoft.com/cdo/configuration/sendusername").Value','x@mail.com'
17
EXEC @hr = sp_OASetProperty @object, 'Configuration.fields("http://schemas.microsoft.com/cdo/configuration/sendpassword").Value','pass'
18![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
19
EXEC @hr = sp_OAMethod @object, 'Configuration.Fields.Update', null
20
EXEC @hr = sp_OASetProperty @object, 'To', @To
21
EXEC @hr = sp_OASetProperty @object, 'Bcc', 'xx@yahoo.com.cn'
22
EXEC @hr = sp_OASetProperty @object, 'From','<x@mail.com>'
23
EXEC @hr = sp_OASetProperty @object, 'Subject', @Subject
24
EXEC @hr = sp_OASetProperty @object, 'BodyFormat', 'MailFormat.Text'
25![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
26
EXEC @hr = sp_OASetProperty @object, 'TextBody', @Body
27![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
28
SET @Body = REPLACE(@Body,CHAR(13),'<br />')
29
EXEC @hr = sp_OASetProperty @object, 'HtmlBody',@Body
30
EXEC @hr = sp_OAMethod @object, 'Send', NULL
31![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
32
--判断出错
33
IF @hr <> 0
34
BEGIN
35
EXEC sp_OAGetErrorInfo @object
36
RETURN @object
37
END
38
PRINT 'success'
39
EXEC @hr = sp_OADestroy @object
40![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
41
GO
1 Windows 2000 Server
2 SQL Server 2000+SP3
3 Microsoft Outlook (Office 2000)
准备一个Internet邮件帐户:
测试电子邮件帐户:test@163.com
pop3服务器 pop.163.com
步骤一: 更改电子邮件配置
1 打开Microsoft Outlook 单击“工具”菜单中的“选项”,然后单击“邮件服务”选项卡。
2 单击“重新配置邮件支持”。
3 选择“用于企业或工作组”选项
4 重新启动Microsoft Outlook
步骤二: 添加配置文件
说明:如果之前您已经通过控制面版->邮件 选项添加过配置文件(比如,配置文件名:test),可省略以下1、2、3操作步骤
1 单击“工具”菜单中的“服务”,然后单击“添加”按钮。
2 选择"Internet 电子邮件",单击“确定”。
3 下面的步骤是设置电子邮件帐号,请参考Microsoft Outlook帮助文件,这里不再赘述。
4 利用配置好的电子邮件帐号收发邮件,确认配置成功。
步骤三: 配置MSSQLSERVER服务采用邮件配置文件
1 重新启动MSSQLSERVER服务(必须的,否则MSSQLSERVER服务检测不到上一步骤添加的配置文件)
2 打开企业管理器->展开服务器->支持服务->右击"邮件"->点击下拉框,你会发现
"Microsoft Outlook Internet Settings"选项(如果您通过控制面版->邮件 选项添加过配置文件,比如:配置文件名:test,那您将会发现 test选项),选中您配置好的配置文件,点击"测试".
如果弹出表示成功的对话框,那恭喜你,已经 大功告成了.
步骤四:享受你的劳动成果
要求以MSSQLSERVER服务采用的Windows帐号登录Windows 2000 Server,即你登录计算机所采用的帐号要和MSSQLSERVER服务采用的Windows帐号相同。
1 打开SQL Server的查询分析器
2 输入下列SQL语句,执行
exec master..xp_sendmail 'test@163.com','Hello,World!'
3 好了,去你的邮箱收邮件去吧!
邮件发送存储过程:
1
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
2
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
3
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
4
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
5
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
6
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
7
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
8
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
9
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
10
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
11
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
12
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
13
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
14
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
15
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
16
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
17
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
18
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
19
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
20
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
21
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
22
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
23
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
24
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
25
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
26
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
27
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
28
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
29
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
30
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
31
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
32
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
33
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
34
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
35
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
36
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
37
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
38
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
39
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
40
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
41
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)