批量修改所有服务器的dbmail配置(推荐)
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,最近遇到这样一个案例,需要修改所有SQL Server的Database Mail的SMTP,原来的SMTP为10.xxx.xxx.xxx, 现在需要修改为192.168.xxx.xxx, 另外需要规
千家信息网最后更新 2025年12月02日批量修改所有服务器的dbmail配置(推荐)
最近遇到这样一个案例,需要修改所有SQL Server的Database Mail的SMTP,原来的SMTP为10.xxx.xxx.xxx, 现在需要修改为192.168.xxx.xxx, 另外需要规范邮件地址,以前这类邮件ServerName@yoursqldba.com的后缀需要修改为ServerName@xxxx.com(信息做了脱敏处理)。
如果使用SSMS客户端的UI界面去修改的话, 那么多服务器一台一台去修改,不仅费时费力,而且枯燥无聊。只能使用脚本,一旦写好一个脚本,而后使用Multiple Server Query Execution(极力推荐使用这个管理、维护数据库),执行一次脚本,全部搞定。剩下的时间你可以喝喝茶、学习下新知识!
DECLARE @EmailAccount sysname;DECLARE @SmtpServer sysname;DECLARE @EmailAddress NVARCHAR(120);DECLARE @EmailSuffix NVARCHAR(32);DECLARE @NewEamilAddress NVARCHAR(120);--DECLARE @ActualEmailSuffix NVARCHAR(32)='xxxx.com'; SQL Server 2005不支持此功能,会报Cannot assign a default value to a local variable.DECLARE @ActualEmailSuffix NVARCHAR(32);DECLARE @ActualSmtpServer sysname;SET @ActualEmailSuffix='xxx.com';SET @ActualSmtpServer='192.168.xxx.xxx';DECLARE EmailAccount_Cursor CURSOR FAST_FORWARDFORSELECT sa.[name] ,ss.[servername] ,sa.email_address FROM [msdb].[dbo].[sysmail_server] ss INNER JOIN [msdb].[dbo].[sysmail_account] sa ON ss.[account_id]=sa.[account_id];OPEN EmailAccount_Cursor;FETCH NEXT FROM EmailAccount_Cursor INTO @EmailAccount, @SmtpServer,@EmailAddress;WHILE @@FETCH_STATUS = 0BEGIN IF LTRIM(RTRIM(@SmtpServer))!=@ActualSmtpServer BEGIN EXECUTE msdb.dbo.sysmail_update_account_sp @account_name = @EmailAccount ,@mailserver_name=@ActualSmtpServer; PRINT @SmtpServer; PRINT @EmailAccount; END; SET @EmailSuffix=SUBSTRING(@EmailAddress,CHARINDEX('@',@EmailAddress)+1, LEN(@EmailAddress) -CHARINDEX('@',@EmailAddress)) IF @EmailSuffix!=@ActualEmailSuffix BEGIN SET @NewEamilAddress= REPLACE(@EmailAddress,@EmailSuffix,@ActualEmailSuffix); EXECUTE msdb.dbo.sysmail_update_account_sp @account_name = @EmailAccount ,@email_address=@NewEamilAddress ,@mailserver_name=@SmtpServer; PRINT @EmailAccount; PRINT @NewEamilAddress; END; FETCH NEXT FROM EmailAccount_Cursor INTO @EmailAccount, @SmtpServer,@EmailAddress;ENDCLOSE EmailAccount_Cursor;DEALLOCATE EmailAccount_Cursor;
脚本
邮件
服务器
推荐
服务
无聊
枯燥
信息
功能
后缀
地址
客户
数据
数据库
新知
时间
案例
界面
端的
会报
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
内蒙古网络安全监测预警
全球网络安全问题趋势
网络技术术语缩写
各省网络安全改造
浪潮服务器bmc恢复出厂
两表中找出相同数据库
网络安全未来智库
嘉兴学软件开发总结
戴尔r720监控服务器
服务器管理口页面端口
机器人与嵌入式软件开发报告
网络安全搭建和攻防
泰山杯网络安全大赛团体分数
动环系统网络安全监督
电脑服务器开不了机是什么原因
广东服务器硬盘销售
硬件部分的软件开发分哪几种
网络安全技术sql注入
建立财务信息数据库
国产服务器安防
软件开发应该买什么笔记本
企业网络安全检查检查什么
网络安全系统一般利润是多少
创建数据库最少产生几个物理文件
工商管理学数据库吗
局域网文件服务器和ftp区别
怎么复制.sql进数据库
广东服务器硬盘销售
优质软件开发哪里有提供
数据库设计两个方面的设计