sqlserver send email -- 以附件的形式发送生成的报告

  1. 打开数据库
    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"'
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值