• SQL中利用脚本创建database mail.


    SQL中利用脚本创建database mail

     

    编写人:CC阿爸

     

    2014-6-14

    多话不讲,请参考以下脚本

     

    use master

    go

    exec sp_configure 'show advanced options',1

    go

    reconfigure

    go

    exec sp_configure 'Database mail XPs',1

    go

    reconfigure

    go

     

    DECLARE @ProfileName VARCHAR(255)

    DECLARE @AccountName VARCHAR(255)

    SET @ProfileName = 'SystemMail';

    SET @AccountName = 'SystemMail';

    --Initial Cleanup:

     IF EXISTS(

     SELECT * FROM msdb.dbo.sysmail_profileaccount pa

           JOIN msdb.dbo.sysmail_profile p ON pa.profile_id = p.profile_id

          JOIN msdb.dbo.sysmail_account a ON pa.account_id = a.account_id

     WHERE

           p.name = @ProfileName AND  a.name = @AccountName)

     

     BEGIN

          PRINT 'Deleting Profile Account'

          EXECUTE sysmail_delete_profileaccount_sp

          @profile_name = @ProfileName,

           @account_name = @AccountName

     END

     IF EXISTS(  SELECT * FROM msdb.dbo.sysmail_profile p  WHERE p.name = @ProfileName)

    BEGIN

          PRINT 'Deleting Profile.'

          EXECUTE sysmail_delete_profile_sp

          @profile_name = @ProfileName

     END

    IF EXISTS(  SELECT * FROM msdb.dbo.sysmail_account a  WHERE a.name = @AccountName)

     BEGIN

           PRINT 'Deleting Account.'

          EXECUTE sysmail_delete_account_sp

          @account_name = @AccountName

     END

    exec msdb..sysmail_add_account_sp

            @account_name            = 'SystemMail'                 -- 邮件帐户名称(SQL Server 使用)

           ,@email_address           = 'potrontech@163.com'  -- 发件人邮件地址

           ,@display_name            = 'SystemMail'                      -- 发件人姓名

           ,@replyto_address         = 'potrontech@163.com'

           ,@description             = 'system alert'

           ,@mailserver_name         = 'smtp.163.com'           -- 邮件服务器地址

           ,@mailserver_type         = 'SMTP'                    -- 邮件协议(SQL 2005 只支持SMTP

           ,@port                    = 25                        -- 邮件服务器端口

           ,@username                = 'potrontech@163.com'  -- 用户名

           ,@password                = 'xxxxx'               -- 此处为邮件密码。暂以x代替

           ,@use_default_credentials = 0

           ,@enable_ssl              = 0

           ,@account_id              = null

     

    exec msdb..sysmail_add_profile_sp @profile_name = 'SystemMail'      -- profile 名称

                                     ,@description  = 'system alert' -- profile 描述

                                     ,@profile_id   = null

     

    exec msdb..sysmail_add_profileaccount_sp @profile_name    = 'SystemMail' -- profile 名称

                                             ,@account_name    = 'SystemMail'     -- account 名称

                                             ,@sequence_number = 1             -- account profile 中顺序

     

    ------test databasemail

    ----DECLARE @xml NVARCHAR(MAX)

    ----DECLARE @body NVARCHAR(MAX)

    ------SET @xml =CAST(( SELECT ID AS 'td','',UserID AS 'td' ,'',UserName AS 'td'  from ERV.dbo.CA  FOR XML PATH('tr'), ELEMENTS ) AS NVARCHAR(MAX))

    ----SET @body ='<html><H1>Sales Reports</H1><body ><table border = 1><tr><td>ID</td><td>UserID</td><td>UserName</td></tr>'

    ----SET @body = @body + @xml +'</table></body></html>'

    ----

    ----

    ------test databasemail

    ----

    ----EXEC msdb.dbo.sp_send_dbmail

    ----@recipients=N'potrontech@163.com',

    ----@body= @body,

    ----@body_format ='HTML',

    ----@subject = 'Test Database Mail html',

    ----@profile_name = 'SystemMail'

    ----go

    ----use msdb

    ----

    ------要检查消息是否发送成功,我可以对sysmail_allitems系统视图执行一次查询。

    --select * from sysmail_allitems

    --select * from sysmail_mailitems

    --select * from sysmail_event_log

     

    --将一个配置文件设置为数据库的默认公共配置文件

     

     

    exec msdb.dbo.sysmail_help_principalprofile_sp

    EXECUTE msdb.dbo.sysmail_update_principalprofile_sp

        @principal_name = 'public',

        @profile_name = 'SystemMail',

        @is_default = '1';

     

    有关更多的技术分享,大家可以加入我们的技术群。

     

    欢迎加入技术分享群:238916811

     

     

  • 相关阅读:
    SQL Server 2008 R2的发布订阅配置实践
    【SQL Server高可用性】数据库复制:SQL Server 2008R2中数据库复制
    sql server几种读写分离方案的比较
    SQL Server 数据库文件管理
    SQL Server 表和索引存储结构
    SQL Server 查询优化 索引的结构与分类
    C#延迟初始化Lazy<T>
    【转】编写高质量代码改善C#程序的157个建议——建议157:从写第一个界面开始,就进行自动化测试
    【转】编写高质量代码改善C#程序的157个建议——建议156:利用特性为应用程序提供多个版本
    【转】编写高质量代码改善C#程序的157个建议——建议155:随生产代码一起提交单元测试代码
  • 原文地址:https://www.cnblogs.com/bribe/p/3791712.html
Copyright © 2020-2023  润新知