- 打开数据库
Management --> SQL Server Logs -->Database Mail 右键,configure Database Email, 出现一个弹窗,一路next, 一直到 填写profile name :具体步骤参考 : https://blog.csdn.net/afandaafandaafanda/article/details/41569779
2. add smtp accout:
这里e-mail address可以随意填写,但是 @163.com 等地址,的server name, 一定要写对。也就是发件人的邮箱服务器名称。否则我估计会发不出去。但是发件人不存在是允许的,不会影响功能。
可以bai上网搜索一下,每个网站的邮件的服务器的名称是zhi不一样的,一般smtp是发送的,pop是接收的:
例如:网易dao网易163免费邮
接收服务器:pop.163.com
发送服务器:smtp.163.com
新浪免费邮箱
接收服务器:pop3.sina.com.cn
发送服务器:smtp.sina.com.cn
搜狐邮箱
接收服务器:pop3.sohu.com
发送服务器:smtp.sohu.com
出现错误 profile name is not valid?
一定是profile name 还没有注册,但我不知道在哪里注册,只能上网找一步一步查。于是在Wizard里找到答案了,也就是在1这里建立好profile 才行,
3.运行脚本,
use BLACKLIST_NMS
go
exec sp_configure 'xp_cmdshell',1
reconfigure
EXEC xp_cmdshell 'MKDIR "D:\Temp\"'
DECLARE @stmt_c VARCHAR(8000);
SET @stmt_c=
'BCP '+
'"SELECT top 1 * FROM '+QUOTENAME(DB_NAME())+'.dbo.tablename" '+
'QUERYOUT "D:\Temp\filename.xls" '+
'-w -t, -T -S ';
-- print @stmt_c
EXEC master.sys.xp_cmdshell @stmt_c;
EXEC msdb.dbo.sp_send_dbmail
@profile_name =N'MyTestMail',
@recipients = 'XXX@163.com',
@subject = 'test email',
@file_attachments='D:\Temp\filename.xls';
exec master..xp_cmdshell 'del "D:\Temp\filename.xls"'