巧用SqlServer数据库实现邮件自动发送功能

使用数据库发送邮件需要三个步骤,配置数据库的邮件服务、编写存储过程、设置SQL作业,接下来开始逐步分享:

配置数据库邮件:

在SqlServer左侧菜单栏中,找到管理页签中数据库邮件选项:

巧用SqlServer数据库实现邮件自动发送功能-开源基础软件社区

接下来开始配置数据库邮件:

巧用SqlServer数据库实现邮件自动发送功能-开源基础软件社区

这里我们选择创建一个全新的配置,并启动该功能,随后下一步即可:

巧用SqlServer数据库实现邮件自动发送功能-开源基础软件社区

给配置文件起一个霸气的名字,说明随意填写即可,这个配置名字需要记得,后面我们还需要使用到它,点击添加功能,开始进行邮箱详细信息的配置:

巧用SqlServer数据库实现邮件自动发送功能-开源基础软件社区

这里填写好你们公司购买的邮件服务账号信息即可,如果没有的话,也可以使用QQ邮箱自带的SMTP功能,启动SMTP服务即可,功能上肯定会有一些限制:

巧用SqlServer数据库实现邮件自动发送功能-开源基础软件社区

填写好配置信息之后,列表中会出现刚才配置的SMTP账户信息:

巧用SqlServer数据库实现邮件自动发送功能-开源基础软件社区

剩下的步骤就是继续、继续、向着胜利出发:

巧用SqlServer数据库实现邮件自动发送功能-开源基础软件社区

巧用SqlServer数据库实现邮件自动发送功能-开源基础软件社区

成功之后也不要骄傲哦,需要测试一下,看邮箱配置是否可以正常地发送邮件,这一点非常的重要,否则后面的操作都会受到影响:

巧用SqlServer数据库实现邮件自动发送功能-开源基础软件社区

巧用SqlServer数据库实现邮件自动发送功能-开源基础软件社区

编写存储过程:

上述步骤测试通过后,我们开始进行存储过程的编写了,为SQL作业的自动执行打下脚本的基础。

存储过程的编写思路就是:将邮件需要发送的内容进行获取,然后通过SQL调用发送邮件的存储过程,将其需要的参数一一提供即可。

这里使用的存储过程是:sp_send_dbmail,需要的主要参数解释下:

  1. @profile_name:这个参数为刚才配置数据库邮件的名称。
  2. @recipients:接收人邮箱地址。
  3. @subject:邮件标题。
  4. @body:邮件内容。
  5. @body_format:邮件格式。
CREATE PROC [dbo].[AutoOrdersEmailNotice]
AS
BEGIN
DECLARE @EmailAddress NVARCHAR(100) = 'xxxxx@qq.com';
DECLARE @CONTENT NVARCHAR(500) = N'<h1>2021-6-5:订单汇总报表</h1><hr /><table border="1" width="500">
<tr align="center" style="font-weight:800;background-color:blue"><td>序号</td><td>产品名</td><td>订单数</td><td>单价</td><td>总价</td></tr>
<tr align="center"><td>1</td><td>车厘子</td><td>200</td><td>100</td><td>20000</td></tr>
<tr align="center"><td>2</td><td>冰糖心</td><td>100</td><td>50</td><td>5000</td></tr>
<tr align="center"><td>3</td><td>芝麻蕉</td><td>500</td><td>40</td><td>20000</td></tr>
</table>';
Exec msdb.dbo.sp_send_dbmail @profile_name='TestSqlMail',
@recipients=@EmailAddress,
@subject=N'2021-6-5日,订单汇总报表',
@body=@CONTENT,
@body_format = 'HTML'
END
  • 1.

编写后同样需要测试,如果可以执行该存储,可以实现邮件的正常发送功能,那么我们此时离胜利只有一步之遥了。

设置SQL作业:

SQL作业的用途就是可以自动、定时地执行SQL脚本,例如:每天更新用户年龄、更新一些订单的状态等等。

使用SQL作业,首先需要开启SqlServer代理服务:

巧用SqlServer数据库实现邮件自动发送功能-开源基础软件社区

巧用SqlServer数据库实现邮件自动发送功能-开源基础软件社区

接下来我们新建作业,用于执行刚才编写的存储过程:

巧用SqlServer数据库实现邮件自动发送功能-开源基础软件社区

填写作业需要的相关信息:

巧用SqlServer数据库实现邮件自动发送功能-开源基础软件社区

解析来选择新建步骤,不要点击确定按钮,这里填写SQL作业需要执行哪个数据库下面的,哪段SQL脚本:

巧用SqlServer数据库实现邮件自动发送功能-开源基础软件社区

设置SQL作业的执行计划,这里根据实际需求设置即可,我这里需要每天定时发送:

巧用SqlServer数据库实现邮件自动发送功能-开源基础软件社区

设置成功之后,同样需要测试一下:

巧用SqlServer数据库实现邮件自动发送功能-开源基础软件社区

巧用SqlServer数据库实现邮件自动发送功能-开源基础软件社区

数据库自动发送邮件成功了,流下了激动的泪水,偷懒果然会让人快乐,晚上可以加鸡腿了。当然我们每天需要关注一下,邮件发送的日志,掌握功能的运行情况:

巧用SqlServer数据库实现邮件自动发送功能-开源基础软件社区

巧用SqlServer数据库实现邮件自动发送功能-开源基础软件社区

总结一下:

这就是使用SqlServer完成的邮件自动发送功能,不同的数据库配置肯定会有所不同,但思路都是大相径庭的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/160871.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

wpf devexpress自定义编辑器

打开前一个例子 步骤1-自定义FirstName和LastName编辑器字段 如果运行程序&#xff0c;会通知编辑器是空。对于例子&#xff0c;这两个未命名编辑器在第一个LayoutItem(Name)。和最终用户有一个访客左右编辑器查阅到First Name和Last Name字段&#xff0c;分别。如果你看到Go…

验证码案例 —— Kaptcha 插件介绍 后端生成验证码,前端展示并进行session验证(带完整前后端源码)

&#x1f9f8;欢迎来到dream_ready的博客&#xff0c;&#x1f4dc;相信你对这篇博客也感兴趣o (ˉ▽ˉ&#xff1b;) &#x1f4dc;表白墙/留言墙 —— 中级SpringBoot项目&#xff0c;MyBatis技术栈MySQL数据库开发&#xff0c;练手项目前后端开发(带完整源码) 全方位全步骤手…

力扣每日一题-数位和相等数对的最大和-2023.11.18

力扣每日一题&#xff1a;数位和相等数对的最大和 开篇 这道每日一题还是挺需要思考的&#xff0c;我绕晕了好久&#xff0c;根据题解的提示才写出来。 题目链接:2342.数位和相等数对的最大和 题目描述 代码思路 1.创建一个数组存储每个数位的数的最大值&#xff0c;创建一…

OpenShift 4 - 就地调整 Pod 资源使用量

《OpenShift / RHEL / DevSecOps 汇总目录》 说明&#xff1a;本文已经在 OpenShift 4.14 的环境中验证 文章目录 为什么需要就地调整 Pod 资源启动 InPlacePodVerticalScaling 特性实现就地调整 Pod 资源参考 为什么需要就地调整 Pod 资源 以往在 Kubernetes 中调整 Pod 的 …

CentOS 7搭建Gitlab流程

目录 1、查询docker镜像gitlab-ce 2、拉取镜像 3、查询已下载的镜像 4、新建gitlab文件夹 5、在gitlab文件夹下新建相关文件夹 6、创建运行gitlab的容器 7、查看docker容器 8、根据Linux地址访问gitlab 9、进入docker容器&#xff0c;设置用户名的和密码 10、登录git…

如何从回收站恢复已删除的文件

我们在各个领域都使用计算机。无论是专业工作还是个人工作&#xff0c;我们在生活中总能找到计算机的用途。因此&#xff0c;我们在很大程度上依赖于我们的计算机。计算机是办公室和企业部门使用的高效机器。 人们使用个人计算机发送电子邮件、创建文档、听音乐和观看视频等等…

企业要做大模型落地?建议进来看看这个榜单

机器幻觉问题&#xff0c;可能是未来相当长一段时间内悬浮在大模型领域上方的两片乌云之一。遥记半年前&#xff0c;LeCun 就曾断言&#xff1a;“单纯根据概率生成自回归的大语言模型&#xff0c;根本解决不了幻觉、错误的问题&#xff0c;GPT模型活不过5年”。 当然&#xff…

红队攻防之特殊场景上线cs和msf

倘见玉皇先跪奏&#xff1a;他生永不落红尘 本文首发于先知社区&#xff0c;原创作者即是本人 网络拓扑图 一、msf正向木马拿不出网域控shell msf生成木马 msfvenom -p windows/x64/meterpreter/bind_tcp lport4444 -f raw -o msf1.bin用msfvenom生成一个正向马传进去&…

cs与msf联动

实验环境 cs4.4(4.5版本不知道为啥实现不了) cs服务器与msf在同一台vps上 本地win7虚拟机 cs派生会话给msf 首先cs正常上线win7&#xff0c;这就不多说了&#xff0c;然后说如何将会话派生给msf cs准备 选择Foreign&#xff0c;这里可以选HTTP&#xff0c;也可以选HTTPS…

RK3568驱动指南|第七篇 设备树-第67章 of操作函数实验:获取属性

瑞芯微RK3568芯片是一款定位中高端的通用型SOC&#xff0c;采用22nm制程工艺&#xff0c;搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码&#xff0c;支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU&#xff0c;可用于轻量级人工…

springBoot中starter

springBoot项目中引入starter 项目引入xxljob&#xff0c;仅需要导入对应的starter包&#xff0c;即可进行快速开发 <dependency><groupId>com.ydl</groupId><artifactId>xxl-job-spring-boot-starter</artifactId><version>0.0.1-SNAPS…

训练模型报错RuntimeError: Input, output and indices must be on the current device

问题出现&#xff1a; 当我训练图网络模型时&#xff0c;源码默认使用cpu&#xff0c;查看后台性能运行&#xff0c;发现正在使用cpu训练&#xff0c;这大大降低了训练速率&#xff0c;并且增加了电脑负载。所以我决定将模型改造并训练放在GPU上运行。 我在train方法中&#xf…

Zabbix5.0部署

环境 主机名 IP 类型server01192.168.134.165zabbix-serverserver02 192.168.134.166zabbix-agent 官方部署文档 1 .安装yum源 [rootserver01 ~]# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-rel…

2、LeetCode之两数相加

给你两个非空的链表&#xff0c;表示两个非负的整数。它们每位数字都是按照逆序的方式存储的&#xff0c;并且每个节点只能存储一位数字。请你将两个数相加&#xff0c;并以相同形式返回一个表示和的链表。你可以假设除了数字0之外&#xff0c;这两个数都不会以0开头。 输入&am…

Docker Volume: 实现容器间数据共享与持久化的利器

文章目录 Docker Volume的作用Docker Volume与容器内数据的比较优势劣势 Docker Volume的创建和管理创建Docker Volume管理Docker Volume 演示Docker Volume的挂载Docker Volume的生命周期安全性考虑与Docker Volume应用场景Docker Volume与多容器协作容器迁移与Docker Volume未…

一文带你了解QT Model/View框架的设计思想和实现机制

目录 1、QT Model/View框架简介 1.1、QT Model/View是什么&#xff1f; 1.2、QT Model/View框架核心思想 1.3、Model/View框架工作机制 1.4、Model/View框架的类 2、Model 2.1模型简介 2.2、模型索引 2.3、数据角色 2.4、QStringListModel 2.5、QFileSystemModel 2…

用低代码平台开发应用

低代码一词&#xff0c;有人认为它是第四代编程语言&#xff0c;有人认为它是开发模式的颠覆&#xff0c;也有人认为它是企业管理模式的变革……有很多声音&#xff0c;社区讨论很热烈。 即使这样&#xff0c;至今也有不少人还不知道这项技术&#xff0c;今天笼统的介绍一下低代…

MidJourney笔记(2)-面板使用

MidJourney界面介绍 接着上面的疑问。U1、U2、U3、U4、V1、V2、V3、V4分别代表着什么? U1、U2、U3、U4: U按钮是用于放大图片,数字即表示对应的图片,可以立即生成1024X1024像素大小的图片。这样大家在使用的时候,也方便单独下载。 其中数字顺序如下:

第五届全国高校计算机能力挑战赛-程序设计挑战赛(C++)

代码输出结果题目&#xff0c;自己跟着敲一遍就行了&#xff01;&#xff01;&#xff01; 指针常量和常量指针的区别https://blog.csdn.net/qq_36132127/article/details/81940015?ops_request_misc%257B%2522request%255Fid%2522%253A%2522170027731616800222813804%2522%2…

基于DOTween插件实现金币飞行到指定位置功能

文章目录 前言一、DOTween是什么&#xff1f;二、使用步骤1.导入DOTween插件在Unity官方插件商店找到DOTween插件导入DOTween插件启用DOTween插件 2.代码逻辑金币飞行代码控制飞行效果代码 3.物体配置1.物体上装配CoinEffect脚本2.在金币预制体上装配FlyControl脚本 三、效果展…