SQLserver 自带的邮件发送功能,可以很方便将数据库中的信息发送给相关人员。如 可以结合监控事件将警告信息发给管理人员,可以结合作业定时发送报表给相关人员等。
数据库邮件配置很简单,以下以图文配置:
1. 管理——数据库邮件(右键)——配置数据库邮件
2. 打开数据库邮件配置向导,选择第一个“通过执行以下人物来安装数据库邮件”
3. 首先“新建配置文件”,填写“配置文件名”,再点击 添加 SMTP账户
4. 创建邮件账户
帐户名:数据库中看到的邮件账户名称
说明:(可选项)
电子邮件地址:数据库中发送电子邮件的电子邮件地址。
显示名称:此帐户发送的电子邮件上显示的名称。 (可选项)
答复电子邮件:当收件人回复数据库中的邮件时,回复将发送到该账户中。 (可选项)
服务器名称:发送电子邮件所用的 SMTP 服务器的名称或 IP 地址。 通常此格式类似于 smtp.<your_company>.com。
端口号:此帐户的 SMTP 服务器的端口号。 大多数 SMTP 服务器使用端口 25。
此服务器要求安全连接(SSL):使用安全套接字层加密通信。
使用数据库引擎服务凭据的Windows 身份验证:使用为 SQL Server 数据库引擎服务配置的凭据生成指向 SMTP 服务器的连接(如局域网内部署有SMTP 服务器)。
基本身份验证:指定 SMTP 服务器要求的用户名和密码(使用外部的SMTP 服务器)。
用户名:登录 SMTP 服务器所用的用户名。
密码:登录 SMTP 服务器所用的密码。
确认密码:再次输入密码以进行确认。
匿名身份验证:在没有登录凭据的情况下,将邮件发送至 SMTP 服务器(如局域网内部署有SMTP 服务器)。
5. 选择“公共配置文件”
公共配置文件对 msdb 数据库中的DatabaseMailUserRole 数据库角色的所有成员都可用。它们允许 DatabaseMailUserRole 角色的所有成员使用该配置文件发送电子邮件。
专用配置文件为 msdb 数据库中的安全主体而定义。它们仅允许指定的数据库用户、角色和 sysadmin 固定服务器角色的成员来使用该配置文件发送电子邮件。
6. “配置系统参数”
7. 接下来一步步点击确定完成!~
8. 现在开始测试!~管理——数据里邮件(右键)——发送测试电子邮件
9. 填写“收件人”的电子邮件,点击 “发送测试电子邮件”
10. 测试邮件很快收到了,成功!~O(∩_∩)O~
现在以SQL脚本配置邮件:
--1.启用数据库邮件
exec sp_configure 'show advanced options',1
reconfigure with override
go
exec sp_configure 'database mail xps',1
reconfigure with override
go
--2.创建邮件帐户
exec msdb.dbo.sysmail_add_account_sp
@account_name = N'kk_139', --帐户名
@description = N'user kk', --说明
@email_address = N'*******6411@139.com',--邮件地址
@display_name = N'AD08', --显示名称
@replyto_address = N'*****0961@qq.com', --答复电子邮件
@mailserver_type = N'SMTP', --邮件协议
@mailserver_name = N'smtp.139.com', --邮件服务器名称
@port =25, --邮件服务器端口
@enable_ssl =0, --是否加密
@use_default_credentials =0, --身份验证模式
@username = N'*******6411@139.com', --用户名
@password = N'************', --密码
@account_id = null
go
--3.创建配置文件
exec msdb.dbo.sysmail_add_profile_sp
@profile_name = N'DefaultProfile', --新配置文件的名称
@description = N'默认配置文件', --新配置文件的说明(可选)
@profile_id = null
go
--4.帐户与配置文件关联
exec msdb.dbo.sysmail_add_profileaccount_sp
@profile_name = N'DefaultProfile', --配置文件名称
@account_name = N'kk_139', --帐户名称
@sequence_number = 1 --顺序
go
--5.发送邮件
exec msdb.dbo.sp_send_dbmail
@profile_name = N'DefaultProfile', --profile名称
@recipients = N'*****5479@qq.com', --收件人
@subject = N'数据库邮件测试', --邮件标题
@body = N'AD08 上的测试电子邮件。' --邮件内容
go
--删除配置文件
EXEC msdb.dbo.sysmail_delete_profile_sp @profile_name=N'DefaultProfile', @force_delete=True
--删除账户
EXEC msdb.dbo.sysmail_delete_account_sp @account_name=N'kk_139'
--相关查询
exec msdb.dbo.sysmail_help_profile_sp
exec msdb.dbo.sysmail_help_account_sp
exec msdb.dbo.sysmail_help_profileaccount_sp
exec msdb.dbo.sysmail_help_configure_sp
select * from msdb.dbo.sysmail_account
select * from msdb.dbo.sysmail_profile
select * from msdb.dbo.sysmail_profileaccount
select * from msdb.dbo.sysmail_configuration
select * from msdb.dbo.sysmail_allitems
select * from msdb.dbo.sysmail_event_log
参考: