• SQL SERVER 数据库邮件配置


    1.简单了解数据库邮件的概念和使用的传输协议及系统体系:

          数据库邮件是从 SQL Server 数据库引擎中发送电子邮件的企业解决方案。通过使用数据库邮件,数据库应用程序可以向用户发送电子邮件。邮件中可以包含查询结果,还可以包含来自网络中任何资源的文件。 无需 Microsoft Outlook 或扩展消息处理应用程序编程接口(扩展 MAPI)。数据库邮件使用标准的简单邮件传输协议 (SMTP) 发送邮件。无须在运行 SQL Server 的计算机上安装扩展 MAPI 客户端便可以使用数据库邮件。

     

    要是想详细了解有关数据库邮件其他详细描述内容,可以查阅联机帮助文档:URL:ms-help://MS.SQLCC.v10/MS.SQLSVR.v10.zh-CHS/s10de_4deptrbl/html/14cbf88f-d9d1-41a5-994e-532e2973ac9e.htm

    2.下面我们通过使用数据库邮件配置向导和sp_configure 存储过程配置启用数据库邮件:

      


     

    上面,我们配置好数据库邮件账户和配件文件,现在我们使用 SQL Mail XPs 选项可在此服务器上启用 SQL Mail(该选项默认是关闭的)。

    复制代码
    sp_configure 'show advanced options', 1
    go
    Reconfigure;
    go
    sp_configure 'SQL Mail XPs', 1
    go
    Reconfigure;
    go
    复制代码

    设置立即生效,无需停止并重新启动服务器,

    3. 发邮件测试及查询数据库邮件日志:

    复制代码
    use msdb
    Go

    Exec dbo.sp_send_dbmail @profile_name='Andy的邮件配件',
        @recipients='test@163.com',
        @subject='数据库邮件测试',
        @body='这是从 WWW-0A82D0DF67CSQL2008DE 上的数据库邮件发出的测试电子邮件!'
    Go
    复制代码

     

    查看数据库邮件日志:

    use msdb
    Go
    Select * From dbo.sysmail_log
    GO 

    要是发送OK,那么我们在发送目标邮箱里面就会收到类似这样的成功邮件:

     

     4、使用SQLSERVER代理,定时发送邮件

    DECLARE @tableHTML NVARCHAR(MAX) ;
    DECLARE @date SMALLDATETIME SET @date = CONVERT(CHAR(10), GETDATE(), 120) 
    DECLARE @title NVARCHAR(64) 
    SELECT @title = CONVERT(CHAR(10), GETDATE(), 120) + ' JX'
    DECLARE @DBA NVARCHAR(1024) 
    SET @DBA = 'xxx@163.com' 
    SET @tableHTML = N'<table border="1">' + N'<tr><th>机型</th><th>产品属性</th>' 
    + N'<th>LastUpdateTime</th></tr>' 
    + CAST(( SELECT td = [机型] , '' 
    , td = [产品属性], '' , 
    td = [LastUpdateTime] , '' 
    FROM [GreeSellInfor].[dbo].[Dim_ProductList_AZWXDirtyData]
    where exists (SELECT [机型]
    FROM [GreeSellInfor].[dbo].[Dim_ProductList_Artificial] BB
    where [GreeSellInfor].[dbo].[Dim_ProductList_AZWXDirtyData].机型=bb.机型 ) or 
    exists ( SELECT [机型]
    FROM [GreeSellInfor].[dbo].[Dim_ProductList_ERP] BB
    where [GreeSellInfor].[dbo].[Dim_ProductList_AZWXDirtyData].机型=bb.机型)
    FOR XML PATH('tr') ,
    TYPE ) AS NVARCHAR(MAX)) + N'</table>'
    
    EXEC msdb.dbo.sp_send_dbmail @profile_name='XXX' ,@recipients = @DBA, @subject = @title, 
    @body = @tableHTML, @body_format = 'HTML' ;
    
     
  • 相关阅读:
    多态的理解
    成员变量与实例变量&成员方法与构造方法&构造代码块和静态代码块&静态与非静态&重写与重载的区别
    Java的基本数据类型和基本数据类型之间的转换
    如何使float精确两位小数或多位小数
    Servlet程序的生命周期
    配置axios全局拦截器
    SpringCloud-Sentinel实现服务限流、熔断、降级,整合Nacos实现持久化
    Nginx+Lua OpenResty环境搭建
    Java-线程池面试题
    Rabbitmq死信队列
  • 原文地址:https://www.cnblogs.com/saratearing/p/6025815.html
Copyright © 2020-2023  润新知