完整的SQL Server邮件服务(译文)
By S.F.
本文链接 https://www.kyfws.com/news/complete-sql-server-mail-service/
版权声明 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
- 6 分钟阅读 - 2834 个词 阅读量 0完整的SQL Server邮件服务(译文)
原文地址:https://www.codeproject.com/Articles/5279053/Complete-SQL-Server-Mail-Service
原文作者:Member 14633234
译文由本站翻译
前言
用于SQL邮件服务的SQL Server作业代理,带有Excel文件附件 这是一个固定的邮件服务,每月有一天会自动启动,并带有一些Excel附件.因此,我创建了一个将完全动态运行邮件服务的邮件服务.
介绍
在本文中,您将看到如何通过带有附件的SQL事件探查器通过SQL Server作业代理步骤发送电子邮件. 从下面下载并安装Microsoft.ACE.OLEDB.12.0 OLE DB驱动程序.根据所使用的SQL Server版本(32位或64位),可以安装两个版本的Microsoft.ACE.OLEDB.12.0 OLE DB驱动程序:
安装了适当的AccessDatabaseEngine可执行文件后,Microsoft.ACE.OLEDB.12.0 OLE DB驱动程序将出现在Providers文件夹下的可用驱动程序列表中,如下所示:
然后打开SQL Server 2019 Configuration Manager并将SQL Server代理设置为自动和休息模式,如下图所示:
因此,到目前为止,已经安装了OLEDB,并且SQL Server Agent处于运行模式. 接下来,我们必须配置数据库邮件.要获取数据库电子邮件探查器,我们必须配置数据库邮件.
配置数据库邮件
第1步
右键单击数据库邮件,然后选择配置数据库电子邮件.
在上图中,选择"设置数据库电子邮件",然后选择"下一步".
第2步
配置文件名称为必填项,其名称必须与发送电子邮件的名称匹配.
在上图中,写出探查器名称,稍后将在发送电子邮件时使用它. 然后单击"添加SMTP帐户".然后选择新帐户.
探查器名称:保留指标POC
第三步
电子邮件帐户设置.通过以下配置,电子邮件将被发送到特定域,例如,如果您的公司特定于公司,则网络团队将为您提供类似Testsolution.com的电子邮件,或者您可以使用gmail或拥有帐户的任何域.
在这里,电子邮件地址可以是您的任何Gmail电子邮件ID,如果是gmail,则在服务器名称中,它将是smtp.gmail.command
端口号默认为25.如果是公司特定的,则可以从部门的网络团队获取电子邮件地址和服务器名称.
Email address: abc@gmail.com
Display Name can be any name :Mail Test
Server: smtp.gmail.com
Port: 25
有关电子邮件配置的更多详细信息,请参考[此链接](https://docs.microsoft.com/zh-cn/sql/relational-databases/database-mail/configure-database-mail?view=sql-server- ver15).
所以在这里,您已经创建了SMTP帐户,单击"下一步"按钮.
第4步
电子邮件配置文件安全性:
在这里,您可以根据需要设置个人资料的可访问性.但是在测试时将其公开. 点击下一步.
第5步
如果发生某些故障,则配置探查器:
然后设置"帐户重试"尝试,其"延迟重试"和"休息"属性. 然后单击Finish =>然后,Profiler创建成功.因此,最终配置文件已设置. 现在,我们将创建SQL Server作业代理.
SQL Server作业代理步骤
第1步
右键单击作业,然后选择新作业.
根据您的要求输入工作名称. 并根据您对SQL管理员的要求进行描述.然后单击"下一步".
第2步
创建SQL Server作业步骤:
选择步骤选项卡,然后单击新建按钮.
第三步
第一步是通过Excel工作表名称+当前日期创建原始Excel的副本. Excel的原始副本将保持不变.
填写步骤名称和命令. 步骤名称:根据您的要求,输入步骤名称. 在命令中,您可以按照自己的逻辑进行编写. 例如,我的要求是使用Excel工作表作为附件发送一封邮件,该邮件可以动态计算收入,因此我已编写了类似的逻辑. 我写了逻辑: 在上面,我启用了cmd shell,并且在我的情况下,我具有Excel的功能.所以我只是复制相同的Excel工作表.
第4步
步骤1的高级步骤表示此步骤是否成功(意味着创建Excel副本,然后执行操作).如果失败重试两次,如果失败也重试,然后退出作业并管理表中的日志.
然后在"高级"选项卡中,对成功完成的操作进行设置:转到下一步/或失败:退出作业.单击确定.
第5步
创建步骤1后,单击"新建"以创建步骤2.
如箭头所示,将创建步骤1.现在再次单击"新建"按钮以创建步骤2.
第6步
步骤2是运行存储过程并在新创建的Excel工作表中导出数据.
再次在部分中写下步骤名称和命令以执行存储过程:
步骤名称:运行存储过程,并用保留指标POC的数据填充Excel工作表.
命令:Exec EXECstored_procedure_name;
步骤7
再次,设置" 9月2日成功"和"失败重试"下的"下一步",如果再次失败,则退出作业并维护日志.
单击高级选项卡,然后将上面的属性值设置为我标记的值. 然后点击确定.
步骤8
创建两个步骤后,剩下的最后一步是发送带有附件的电子邮件.单击新建按钮.
再次单击"新建"按钮.
步骤9
同样,在图片下方输入步骤名称和命令以发送电子邮件.
步骤名称:SQL Job Agent发送带有保留度量附件的电子邮件
命令
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'Retention Metrics POC',
@recipients = 'teste@gmail.com',
@subject = 'POC Weekly Report',
@body = 'Metrics Query Report for testing',
@importance = 'HIGH',
@file_attachments = 'C:\Test\Retention_metrics_for_Caseworker_Activity'+
replace(convert(varchar, getdate(),101),'/','')+'.xlsx'
在上面的配置文件名称命令中,在配置文件名称中写入我们先前创建的配置文件名称(即在步骤2中,我们创建了配置文件名称,此处将使用相同的配置文件名称),其余字段作为邮件属性(例如收件人)可以从表中动态设置,也可以固定一些. 在主题方面,我们在这里提到的将是邮件主题,同样是身体属性. 而且由于我的电子邮件包含附件,因此我要在电子邮件中添加最近生成的Excel.
第10步
再次设置成功和失败步骤.
将以下属性设置为已标记. 然后点击确定.
步骤11
这三个步骤均已创建.现在安排作业运行.
这样,创建了三个步骤后,单击"计划"选项卡.
步骤12
在"计划"选项卡中,单击"新建"按钮以计划时间以自动运行作业.
在计划选项卡中,单击新建按钮.
步骤13
我设定的工作时间属性用黄色标记.
用黄色标记表示要设置的属性值. 设置所有值后,单击"确定".
步骤14
在Job运行成功/失败后设置通知:
在"通知"选项卡中,您可以设置要在作业成功/失败状态后执行的操作的值. 然后点击确定.
结论
SQL Server作业代理已准备就绪,并已计划运行.
历史
- 日
许可
本文以及所有相关的源代码和文件均已获得The Code Project Open License (CPOL)的许可。
SQL-Server DBA 新闻 翻译