博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MSSQL发送邮件
阅读量:6591 次
发布时间:2019-06-24

本文共 4014 字,大约阅读时间需要 13 分钟。

SQL Server 并没有内置邮件服务器(Mail Server),它跟我们发送邮件一样,需要用户名和密码通过 SMTPSimple Message Transfer Protocol)去连接邮件服务器。我们想让 SQL Server 来发送邮件,首先要告诉它用户名称,密码,服务器地址,网络传送协议,邮件服务器的端口……等信息。

以下脚本实现了数据库邮件的配置:

下面是具体的配置邮件步骤 

在 sa 系统帐户下运行。 

 

-- 打开邮件设置 use master go exec sp_configure 'show advanced options',1    --以下示例显示如何设置并列出所有的配置选项。先将 show advanced option 设置为 1,便可显示高级配置选项。更改该选项后,不带参数执行 sp_configure 将会显示全部配置选项。 go reconfigure go exec sp_configure 'Database mail XPs',1    go reconfigure go -- 添加邮件账户 exec msdb..sysmail_add_account_sp                                            --创建一个新的数据库邮件帐户,用于保存有关 SMTP 帐户的信息     @account_name='yyy'                                                        --邮件账户名称(SQL Server 使用)     ,@email_address='yyy753@qq.com'                                        --发件人邮件地址     ,@display_name=null                                                    --发件人姓名     ,@replyto_address=null                                                    --回复该帐户的邮件时使用的地址     ,@description=null                                                        --对帐户的说明     ,@mailserver_name='smtp.qq.com'                                            --邮件服务器地址     ,@mailserver_type='SMTP'                                                --邮件协议     ,@port=25                                                                --邮件服务器端口     ,@username='yyy@qq.com'                                            --用户名     ,@password='123456'                                                --密码     ,@use_default_credentials=0                                                --指定是否使用 SQL Server 数据库引擎的凭据将邮件发送到 SMTP 服务器     ,@enable_ssl=0                                                            --指定数据库邮件是否使用安全套接字层对通信进行加密     ,@account_id=null                                                        --返回新帐户的帐户 ID     -- 添加profile exec msdb..sysmail_add_profile_sp        --创建新的数据库邮件配置文件。     @profile_name='dba_profile'            --新配置文件的名称     ,@description='dba mail profile'    --新配置文件的说明     ,@profile_id=null                    --返回新配置文件的 ID -- 映射account和profile exec msdb..sysmail_add_profileaccount_sp    --在数据库邮件配置文件中添加一个数据库邮件帐户     @profile_name='dba_profile'                --要在其中添加帐户的配置文件的名称     ,@account_name='yyy'                    --要在配置文件中添加的帐户的名称     ,@sequence_number=1                        --配置文件中的帐户的序列号     -- 利用Database Mail功能发送邮件 exec msdb..sp_send_dbmail                                                                --向指定收件人发送电子邮件     @profile_name='dba_profile'                                                            --发送邮件的配置文件的名称     ,@recipients='yangyunyu123@foxmail.com'                                                --收件人     ,@subject='SQL Server E-Mail Test!'                                                    --邮件标题     ,@body='Hello!yyy!'                            --邮件内容     ,@body_format='TEXT'                                                                --邮件格式 -- 查看发邮件结果    use msdb go select * from sysmail_allitems select * from sysmail_mailitems select * from sysmail_event_log --如果不是以 sa 帐户发送邮件,则可能会出现错误: --Msg 229, Level 14, State 5, Procedure sp_send_dbmail, Line 1 --EXECUTE permission denied on object 'sp_send_dbmail', database 'msdb', schema 'dbo'. --这是因为,当前 SQL Server 登陆帐户(login),在 msdb 数据库中没有发送数据库邮件的权限,需要加入 msdb 数据库用户,并通过加入 sp_addrolemember 角色赋予权限。假设该SQL Server 登陆帐户名字为 “dba” --use msdb --go --create user dba for login dba --go --exec dbo.sp_addrolemember @rolename   = 'DatabaseMailUserRole', --                          @membername = 'dba' --go --此时,再次发送数据库邮件,仍可能有错误: --Msg 14607, Level 16, State 1, Procedure sp_send_dbmail, Line 119 --profile name is not valid --虽然,数据库用户 “dba” 已经在 msdb 中拥有发送邮件的权限了,但这还不够,他还需要有使用 profile:“dba_profile” 的权限。 --use msdb --go --exec sysmail_add_principalprofile_sp  @principal_name = 'dba' --                                     ,@profile_name   = 'dba_profile' --                                     ,@is_default     = 1 --从上面的参数 @is_default=1 可以看出,一个数据库用户可以在多个 mail profile 拥有发送权限。

转载于:https://www.cnblogs.com/yangyy753/archive/2011/12/02/2272391.html

你可能感兴趣的文章
ASP开发基础
查看>>
MYSQL性能调优
查看>>
LVM自动扩容
查看>>
笔记整理4
查看>>
idea文件折叠显示出来配置
查看>>
SQLSERVER中的非工作时间不得插入数据的触发器的实现
查看>>
如何写出兼容大部分浏览器的CSS 代码
查看>>
第二阶段冲刺第八天,6月7日。
查看>>
java的左移位(<<)和右移位(>>)和无符号右移(>>>)
查看>>
struts2 action 返回类型分析
查看>>
【原创】FPGA开发手记(三) PS/2键盘
查看>>
linux统计多个文件大小总和
查看>>
java基础-Eclipse开发工具介绍
查看>>
JS常见的字符串操作
查看>>
洛谷P1069 细胞分裂 数学
查看>>
JAVA中的编码分析
查看>>
查看源代码Source not found及在eclipse中配置jdk的src.zip源代码
查看>>
document.all用法
查看>>
uniGUI试用笔记(二)
查看>>
HOG特征-理解篇
查看>>