SQLSERVER 数据库邮件发送以表格形式发送

直接开始不哔哔!

一、数据库配置(以图文展现)

1.以sa或者windows身份登录数据库

2.选择数据库管理下面的数据库邮件:

3.选择数据库邮件左击选择配置数据库邮件。

直接下一步

这里我们选择通过执行以下任务来安装数据库邮件

配置文件名称然后点击添加SMTP邮箱用户

填写好以下信息

直接下一步下一步就可以了

二、代码片段——发送邮件

这边我是把存储过程执行通过邮件以表格的形式发送的‘

代码如下:

/*声明变量*/
declare @tableHTML NVARCHAR(max)
--设置问候词
set @tableHTML ='<html><body><table><tr><td><p><font color="#000080" size="3" face="Verdana">您好!</font></p><p style="margin-left:30px;"><font size="3" face="Verdana">价格:</font></p></td></tr><font color=" #d5d5d5">'
--<html><body><table><tr><td><p> <font color="#000080" size="3" face="Verdana">';
--set @tableHTML = @tableHTML+'</p><p style="margin-left:30px;">系统数据</p>'
--设置表头
set @tableHTML=@tableHTML
+'<tr><td><table border="1" style="border:1px solid #d5d5d5;border-collapse:collapse;border-spacing:0;margin-left:25px;margin-top:15px;"><tr style="height:25px;background-color: rgb(219, 240, 251);">
<th style="width:150px;">dd</th>
<th style="width:200px;">tt</th>
<th style="width:80px;">dd</th>
<th style="width:100px;">dd</th>
<th style="width:100px;">dd</th>
<th style="width:100px;">dd</th>
<th style="width:100px;">rrr</th>';
CREATE TABLE #tNOOK_01 (id char(20), gys char(50),sl  char(50),ck  char(50),km  char(50),hj  char(50) ,pd  char(50) )
insert into #tNOOK_01  exec khpde_tangbing
--设置表体
set @tableHTML=@tableHTML+'<tr>'+ CAST((SELECT td = id, '',td = gys, '',td = sl, '',td = ck, '',td = km, '',td = hj, '',td = pd, ''FROM  #tNOOK_01for xml path('tr'),type) as NVARCHAR(max))+N'</table>'
EXEC msdb.dbo.sp_send_dbmail--@profile_name = '1170683823@qq.com', --定义好的sql server 邮箱账户名@recipients = 'dujun@shsongz.com', --需要发送邮件的账号,多个用;间隔,建议通过一个邮件组来管理需要发送的地址@body = @tableHTML,  -- 邮件正文@body_format   ='HTML',   --邮件格式 默认为TEXT 可以改成HTML@subject = '价格清单'  --邮件抬头@execute_query_database = '' , --查询的数据库 @query='SQL语句'--需要执行的查询drop table #tNOOK_01    --删除零时表

!!——测试可用

发送效果如下:

只是截屏了表头:表体没有截图哦

下面是借鉴 msdb.dbo.sp_send_dbmail存储过程的使用参数。

@profile_name= ] 'profile_name'

发送邮件的配置文件的名称。profile_name 的类型为 sysname,默认值为 NULL。profile_name 必须是现有数据库邮件配置文件的名称。如果未指定 profile_name,则 sp_send_dbmail 使用当前用户的默认专用配置文件。如果该用户没有默认专用配置文件,sp_send_dbmail 会使用 msdb 数据库的默认公共配置文件。如果用户没有默认的专用配置文件,而且数据库也没有默认的公共配置文件,则必须指定 @profile_name

@recipients= ] 'recipients'

要向其发送邮件的电子邮件地址列表,以分号分隔。收件人列表的类型为 varchar(max)。虽然此参数是可选参数,但是必须至少指定 @recipients@copy_recipients 或 @blind_copy_recipients 中的一个,否则sp_send_dbmail 将返回错误。

@copy_recipients= ] 'copy_recipients'

要向其抄送邮件的电子邮件地址列表,以分号分隔。抄送件收件人列表的类型为 varchar(max)。虽然此参数是可选参数,但是必须至少指定 @recipients@copy_recipients 或 @blind_copy_recipients 中的一个,否则 sp_send_dbmail 将返回错误。

@blind_copy_recipients= ] 'blind_copy_recipients'

要向其密件抄送邮件的电子邮件地址列表,以分号分隔。密件副本收件人列表的类型为 varchar(max)。虽然此参数是可选参数,但是必须至少指定 @recipients@copy_recipients 或 @blind_copy_recipients 中的一个,否则 sp_send_dbmail 将返回错误。

@subject= ] 'subject'

电子邮件的主题。主题的类型为 nvarchar(255)。如果未指定主题,则默认为“SQL Server 消息”。

@body= ] 'body'

电子邮件的正文。邮件正文的类型为 nvarchar(max),默认值为 NULL。

@body_format= ] 'body_format'

邮件正文的格式。该参数的类型为 varchar(20),默认值为 NULL。如果已指定,则待发邮件的标头设置会指示邮件正文具有指定格式。该参数可能包含下列值之一:

  • TEXT
  • HTML

默认为 TEXT。

@importance= ] 'importance'

邮件的重要性。该参数的类型为 varchar(6)。该参数可能包含下列值之一:

  • Low
  • Normal
  • High

默认值为 Normal。

@sensitivity= ] 'sensitivity'

邮件的敏感度。该参数的类型为 varchar(12)。该参数可能包含下列值之一:

  • Normal
  • Personal
  • Private
  • Confidential

默认值为 Normal。

@file_attachments= ] 'file_attachments',

电子邮件附件的文件名列表,以分号分隔。必须使用绝对路径指定列表中的文件。附件列表的类型为nvarchar(max)

@query= ] 'query'

要执行的查询。查询结果可以作为文件附加,或包含在电子邮件的正文中。查询的类型为 nvarchar(max),并且可以包含任何有效的 Transact-SQL 语句。请注意,查询在单独的会话中执行,所以调用 sp_send_dbmail的脚本中的局部变量不可用于查询。

@execute_query_database= ] 'execute_query_database'

存储过程在其中运行查询的数据库上下文。该参数的类型为 sysname,默认为当前数据库。只有在指定 @query 时,此参数才适用。

@attach_query_result_as_file= ] attach_query_result_as_file

指定查询结果集是否作为附件返回。attach_query_result_as_file 的数据类型为 bit,默认值为 0。

如果该值为 0,则查询结果包含在电子邮件的正文中,在 @body 参数的内容之后。如果该值为 1,则结果作为附件返回。只有在指定 @query 时,此参数才适用。

@query_attachment_filename= ] query_attachment_filename

指定查询结果集附件使用的文件名。query_attachment_filename 的数据类型为 nvarchar(255),默认值为 NULL。如果 attach_query_result 为 0,则忽略此参数。如果 attach_query_result 为 1 且此参数为 NULL,则数据库邮件会创建任意文件名。

@query_result_header= ] query_result_header

指定查询结果是否包含列标题。query_result_header 值的数据类型为 bit。如果该值为 1,则查询结果包含列标题。如果该值为 0,则查询结果不包含列标题。该参数的默认值为 1。只有在指定 @query 时,此参数才适用。

@query_result_width = ] query_result_width

用于设置查询结果的格式的线条宽度(字符)。query_result_width 的数据类型为 int,默认值为 256。提供的值必须介于 10 和 32767 之间。只有在指定 @query 时,此参数才适用。

@query_result_separator= ] 'query_result_separator'

用于分隔查询输出中的列的字符。分隔符的类型为 char(1)。默认为“ ”(空格)。

@exclude_query_output= ] exclude_query_output

指定是否使用电子邮件返回查询执行的输出。exclude_query_output 的数据类型为 bit,默认值为 0。当此参数为 0 时,sp_send_dbmail 存储过程的执行将在控制台上打印作为查询执行结果而返回的消息。当此参数为 1 时,sp_send_dbmail 存储过程的执行不会在控制台上打印任何查询执行消息。

@append_query_error= ] append_query_error

指定是否在 @query 参数指定的查询返回错误时发送电子邮件。append_query_error 的数据类型为 bit,默认值为 0。如果此参数的值为 1,则数据库邮件会发送电子邮件,并电子邮件的正文中显示查询错误消息。如果此参数的值为 0,则数据库邮件不发送电子邮件,sp_send_dbmail 在结束时会返回代码 1,指示失败。

@query_no_truncate= ] query_no_truncate

指定是否使用可避免截断大型可变长度数据类型(varchar(max)nvarchar(max)varbinary(max)xmltextntextimage 和用户定义类型)的选项执行查询。设置该选项后,查询结果将不包含列标题。query_no_truncate 值的数据类型为 bit。当该值为 0 或未指定时,查询中的列将截断为 256 个字符。当该值为 1 时,不截断查询中的列。此参数的默认值为 0

SQLSERVER 数据库邮件发送以表格形式发送(存储过程内容发邮件)相关推荐

  1. Outlook将邮件内容中的数据以表格形式发送

    概述:这是第一种方法,第一种方法比较简单,用到这个控件:Create HTML Content,只需要将想要发送的数据存成DataTable类型,传入这个控件,并且邮件正文也可以在这个控件里直接编辑. ...

  2. 邮箱自动化(smtplib模块)--以邮件正文HTML表格形式

    一.需求 将工资表以邮件附件批量发送给每个人,并以HTML表格附在正文发送出去(或者发送个人业绩).解决本次需求主要用到模块为smtplib.email模块.pandas模块. 数据源 以excel表 ...

  3. java邮箱465端口发送验证码,htmlmail465,465端口发邮件

    首先需要导入三个jar包:htmlmail.zip 先看看效果 代码 自己填写class email_inf里的配置, 使用方法:调用achievecode获取一个随机验证码并保存然后通过sendAu ...

  4. notes邮件正文显示不全_python实现一次性批量发邮件

    在上次实现了批量修改文件名后(链接:https://zhuanlan.zhihu.com/p/133727520),又拿来了同事编写的一次性批量发邮件小程序,小编每月向分公司发数据任务算是基本上实现了 ...

  5. 定时发邮件 linux,linux 定时巡检系统时间并且发邮件

    获取系统时间用到data命令 date 发送邮件用的是mail命令,这个需要安装,yum -y intall mail 配置smtp,添加如下 vi /etc/mail.rc setfrom=1234 ...

  6. 用python自动发邮件_Python实现向QQ群成员自动发邮件的方法

    #coding:utf-8 import random import smtplib from email.mime.text import MIMEText import time def send ...

  7. java 给qq邮箱发邮件_Java使用QQ邮箱给其他邮箱发邮件

    个人微信小程序可以扫码体验 引入了2个jar包 javax.mail javax.mail-api 1.5.5 com.sun.mail javax.mail 1.5.4 获取QQ邮箱的授权码 开启. ...

  8. smtp 发邮件(冒充邮件服务器跟QQ的服务器联系而发邮件从而不用密码)

    jixiuf@jf ~ $ telnet mx0.qq.com 25     Trying 58.251.149.190...               Connected to mx0.qq.co ...

  9. 将 .eml 后缀的文件以邮件形式发送

    新版发送邮件的脚本:批量发邮件 6.0 CN 字符集统计: "gbk"."GBK"."gb2312"."GB2312". ...

最新文章

  1. Vlan中的 PVID vid tag untag 常识理论
  2. python gif动态图的合成
  3. git reset --hard HEAD
  4. 1,1 一维运动公式
  5. python周天为一周的开始_周天-和周天相关的内容-阿里云开发者社区
  6. 学习日报 1027 自动类型转换 运算符
  7. cython php,【整理】Cython返回C/C++ struct类型数据 | 勤奋的小青蛙
  8. 黄聪:用于 Web 应用程序项目部署的 Web.config 转换语法
  9. Linux 文件夹和文件大小排序
  10. MySQL Innodb Engine -- 文件格式(innodb_file_format)
  11. 信息系统项目管理03——项目立项管理
  12. OptiCoupe 6:光学切割面板和型材切割优化[OptiCut]
  13. python处理时间序列非平稳_推荐 :手把手教你用Python处理非平稳时间序列(附代码)...
  14. latex里图片大小如何调整_LATEX图片位置调整
  15. Linux发行版制作总结
  16. 【ubuntu】搭建lamp架构
  17. UVA 1647 Computer Transformation
  18. pt100热电阻c语言的程序,单片机+ADC0832热电阻PT100测温程序
  19. c语言压缩并加密算法,C语言压缩文件和用MD5算法校验文件完整性的实例教程
  20. bat批处理删除文件

热门文章

  1. 重读 阿里中供系前世今生:马云最神秘的子弟兵二
  2. android ogg转mp3,MP3提取转换器
  3. MBR膜是什么?起到哪些用途?-世来福
  4. 信奥一本通2071题
  5. 珞石(ROKAE)机械手简单的编程
  6. 【NLP相关】开源中文NLP大模型及项目集合
  7. NKOJ 2703 (WC 2014)紫荆花之恋 (点分治+平衡树+替罪羊)
  8. 蓦然回首,十余年的程序员生涯最后就只剩下了这些!希望我犯过的错误你不要再犯!
  9. 网卡的 Ring Buffer 详解
  10. React给antd中TreeSelect组件左侧加自定义图标icon