通过SQLServer的数据库邮件来发送邮件

时间:2021-09-07 18:03:10

前段时间需要做一个发送邮件的功能,于是就花了一点时间研究了一下。发现通过SQLServer就可以发送邮件,只需要配置一下就可以了,而且配置过程很简单。下面来说一下配置过程:

1、启用Database Mail XPs功能。

查看Database Mail XPs功能是否打开,value为0说明没有打开,注意SQL Server早期版本是SQL MailXPs提供的发送邮件功能,而现在用的是Database Mail XPs来实现发送邮件。

SELECT  name ,
value ,
description ,
is_dynamic ,
is_advanced
FROM sys.configurations
WHERE name LIKE '%mail%'
通过SQLServer的数据库邮件来发送邮件

启动DatabaseMail XPs功能:

sp_configure 'show advanced options',1
go
reconfigure
go sp_configure 'Database Mail XPs',1
go
RECONFIGURE
go

  

通过SQLServer的数据库邮件来发送邮件

从结果可以看出value=1,说明已打开。

2、配置数据库邮件

1)、点开管理目录,右键“数据库邮件”,选择“配置数据库邮件”选项:

通过SQLServer的数据库邮件来发送邮件

2)、弹出“数据库邮件配置向导”,单击下一步:

通过SQLServer的数据库邮件来发送邮件                 3)、默认选择第一项就可以,点击下一步:
通过SQLServer的数据库邮件来发送邮件
 

4)、输入“配置文件名”,如:db_mail,然后单击右侧的“添加”按钮:

通过SQLServer的数据库邮件来发送邮件

 

5)、输入账户名、说明,按照你的实际情况,输入:电子邮件地址、服务器名称,用户名和密码,必须要输入正确,否则就不能正确发送邮件。

用户名和密码,就是登陆这个邮箱的用户名和密码,服务器名称是:smtp.163.com,端口号:默认25

通过SQLServer的数据库邮件来发送邮件

通过SQLServer的数据库邮件来发送邮件

6)、选择‘“公共”,下一步

通过SQLServer的数据库邮件来发送邮件

 
             7)、可以修改“配置系统参数”,比如账户重试次数,禁止的附件文件扩展名
 
通过SQLServer的数据库邮件来发送邮件
 
          8)、单击完成按钮,显示配置成功:
 
通过SQLServer的数据库邮件来发送邮件
 
通过SQLServer的数据库邮件来发送邮件
 
            3、发送邮件,创建存储过程。
CREATE PROCEDURE send_dbMail
(
@toPeople VARCHAR(256),
@email_conetent VARCHAR(8000)
)
as
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'db_mail', --配置文件名称
@recipients = @toPeople, --收件email地址
@subject = '你好', --邮件主题
@body = @email_conetent --邮件正文内容