• 巧用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:邮件格式。
    1. CREATE PROC [dbo].[AutoOrdersEmailNotice]
    2. AS
    3. BEGIN
    4. DECLARE @EmailAddress NVARCHAR(100) = 'xxxxx@qq.com';
    5. DECLARE @CONTENT NVARCHAR(500) = N'<h1>2021-6-5:订单汇总报表h1><hr /><table border="1" width="500">
    6. <tr align="center" style="font-weight:800;background-color:blue"><td>序号td><td>产品名td><td>订单数td><td>单价td><td>总价td>tr>
    7. <tr align="center"><td>1td><td>车厘子td><td>200td><td>100td><td>20000td>tr>
    8. <tr align="center"><td>2td><td>冰糖心td><td>100td><td>50td><td>5000td>tr>
    9. <tr align="center"><td>3td><td>芝麻蕉td><td>500td><td>40td><td>20000td>tr>
    10. table>';
    11. Exec msdb.dbo.sp_send_dbmail @profile_name='TestSqlMail',
    12. @recipients=@EmailAddress,
    13. @subject=N'2021-6-5日,订单汇总报表',
    14. @body=@CONTENT,
    15. @body_format = 'HTML'
    16. END
    • 1.

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

    设置SQL作业:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    总结一下:

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

  • 相关阅读:
    【计算机毕业设计】基于SpringBoot+Vue电影在线订票系统的开发与实现
    解决:yarn 无法加载文件 “C:\Users\XXXXX\AppData\Roaming\npm\yarn.ps1,因为在此系统上禁止运行脚本“ 的问题
    详解内存SDRAM原理(P-Bank、L-Bank、刷新、预充电等)
    PYTHON[有向图]--用‘列表推导式‘获取‘关注指定用户‘的所有用户
    分布式锁的实现方案
    如何解决网站服务器响应速度慢的问题
    利用Elasticsearch提升Java应用的搜索能力
    微服务建构思想
    在macOS上实现多进程任务处理
    Java框架 SpringMVC--完全注解配置
  • 原文地址:https://blog.csdn.net/delphigbg/article/details/134474413