一、首先要对本地数据库做配置
1.通过使用数据库邮件配置向导和sp_configure存储过程配置启用数据库邮件:
注:服务器名称填写发送服务器的路径或者IP,电子邮件地址为寄件者地址
配置好数据库邮件账户和配件文件后,使用SQL Mail XPs选项在此服务器上启用SQL Mail(改选项默认是关闭的)
sp_configure 'show advanced options' , 1
go
Reconfigure;
go
sp_configure 'SQL Mail XPs' , 1
go
Reconfigure;
go
设置立即生效,无需停止并重新重启服务器
查看数据库邮件日志:
二、收到郵件顯示
三、存储过程代码
USE 数据库名称
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE 存储过程名称
AS
BEGIN
SET NOCOUNT ON;
DECLARE @MailTo NVARCHAR(MAX)
DECLARE @Mailcc NVARCHAR(MAX)
DECLARE @MailBcc NVARCHAR(MAX)
DECLARE @MailSubject NVARCHAR(255)
DECLARE @MailBody NVARCHAR(MAX)
DECLARE @MailFormat NVARCHAR(20)
DECLARE @SignCount NVARCHAR(50)
DECLARE @DayID NVARCHAR(20)
SET @DayId=CONVERT(NVARCHAR(10),DATEADD(DAY,-1,GETDATE()),111)
SELECT @SignCount=COUNT(1) FROM [GSClassDB].[dbo].[Class_Abnorm] WHERE DayID='2017/12/03'
SET @MailSubject='非責任制出勤共'+@SignCount+'筆,請注意查收!'
SET @MailTo='ximi@com'
SET @Mailcc='ximi@com'
SET @MailBcc=''
SET @MailBody=''
SET @MailFormat='HTML'
SET @MailBody=
N'Dear ALL:<br>非責任制出勤共'+@SignCount+'筆,請注意查收,謝謝!<br><H4> 列表如下: </H>'+
N'<table border="1" style="font-size:11px;text-align:center" width="60%">'+
N'<tr style="font-size:11"><th>工號</th>'+
N'<th>姓名</th>'+
N'<th>部门</th>'+
CAST( ( SELECT
td=EmpID, ' ' ,
td=EmpName, ' ' ,
td=DeptID, ' '
FROM [GSClassDB].[dbo].[Class_Abnorm] WHERE DayID='2017/12/03'
FOR XML PATH( ' t r ' ),TYPE
)AS NVARCHAR(MAX))+
N'</table><br>以上为系统发送,请勿回复,谢谢!!<资讯系统部-课>'
DECLARE @i int
BEGIN
SET @i=0;
IF(@SignCount>1)
EXEC msdb.dbo.sp_send_dbmail
@profile_name='ximi',
@recipients=@MailTo,
@copy_recipients=@Mailcc,
@blind_copy_recipients=@MailBcc,
@subject=@MailSubject,
@body=@MailBody,
@body_format=@MailFormat
SET @i=1;
END
END