通过SQLServer的数据库邮件来发送邮件
前段时间需要做一个发送邮件的功能,于是就花了一点时间研究了一下。发现通过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%'
启动DatabaseMail XPs功能:
sp_configure 'show advanced options',1 go reconfigure go sp_configure 'Database Mail XPs',1 go RECONFIGURE go
从结果可以看出value=1,说明已打开。
2、配置数据库邮件
1)、点开管理目录,右键“数据库邮件”,选择“配置数据库邮件”选项:
2)、弹出“数据库邮件配置向导”,单击下一步:
3)、默认选择第一项就可以,点击下一步:
4)、输入“配置文件名”,如:db_mail,然后单击右侧的“添加”按钮:
5)、输入账户名、说明,按照你的实际情况,输入:电子邮件地址、服务器名称,用户名和密码,必须要输入正确,否则就不能正确发送邮件。
用户名和密码,就是登陆这个邮箱的用户名和密码,服务器名称是:smtp.163.com,端口号:默认25
6)、选择‘“公共”,下一步
7)、可以修改“配置系统参数”,比如账户重试次数,禁止的附件文件扩展名
8)、单击完成按钮,显示配置成功:
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 --邮件正文内容