问题标签 [database-mail]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql-server - 数据库邮件注册表设置不会保持配置
我有一个奇怪的给你。我在迁移之前维护了几个数据库。其中之一是 2008R2 实例。这个实例在日志中有多个错误(基础设施维护不善),所以我设置了一堆警报(16-25)并尝试使用数据库邮件发送它们。但是邮件注册表设置不断重置并阻止它工作。我不知道是否有人在我身后恶意进入并恢复注册表中的设置(这在我工作的有毒环境中是可能的)或者是否是某种晦涩难懂的问题。
只是为了确认...我在 2017 实例上使用相同的邮件设置创建了相同的警报,我也在监控这些实例,没有问题。同样,在 2008R2 实例上,我可以成功设置数据库邮件参数,向自己发送一封测试电子邮件并执行一项作业,通过操作员使用相同的数据库邮件配置文件和用户发送一封“已完成”的电子邮件。
xp_instance_regwrite
使用或设置参数sp_set_sqlagent_properties
也不起作用,尽管我很早就意识到由于服务器上缺乏管理员权限,参数并没有保持不变,所以我让基础设施人员给我访问权限。我然后:
- 登录到服务器
- 关闭代理(它什么也没做)
- 配置注册表设置 (
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10_50.<instance>\SQLServerAgent\UseDatabaseMail = 1
,HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10_50.<instance>\SQLServerAgent\DatabaseMailProfile = <my-mail-profile>
) - 重新启动代理。
然后我从 SSMS 确认“邮件会话”参数(启用邮件配置文件、邮件系统和邮件配置文件)设置正确。一天后,日志充满了错误,我没有电子邮件,所有代理属性都是空的并且是灰色的!
有人见过这个吗?
sql-server - SQL Server 2018:数据库电子邮件 - 异常消息:无法将邮件发送到邮件服务器。(操作已超时
我正在使用 SQL Server Management Studio V18。我想在 SQL 代理中安排一个作业,它将根据某些条件发送一些邮件。为此,我已经配置了数据库帐户配置文件,并且正在尝试测试电子邮件。但是没有收到邮件。它说的是以下错误。对此的任何帮助将不胜感激。
由于邮件服务器故障,无法将邮件发送给收件人。(使用帐户 1002 (2021-03-30T05:36:55) 发送邮件。
异常消息:无法将邮件发送到邮件服务器(操作已超时)
sql-server - SQL Server - 发送加密电子邮件
是否可以使用 SQL Server 的数据库邮件组件发送加密电子邮件?我正在考虑为当前使用数据库邮件发送电子邮件的系统添加加密支持。S/MIME 更可取,但 PGP 也可以。
如果这不可能,我想我将需要更改架构并添加一个额外的组件来处理发送电子邮件(完全独立的程序或 SQLCLR 存储过程)。您是否为此目的推荐了 C#/.NET 库?
sql-server - Databasemail 适用于实时环境,但不适用于同一 SQL Server 实例上的测试环境
我们的一个办公室有一个应用程序,它利用数据库邮件从应用程序向应用程序用户目录中列出的用户发送电子邮件。
在他们的实时环境中,电子邮件发送没有问题。在他们的培训环境中,不会发送电子邮件。在应用程序端,发送电子邮件的设置是相同的,训练端的数据库是最近恢复的实时数据库的副本。
我试过检查数据库邮件日志,但唯一的事件是 event_type 信息,主要是“数据库邮件进程已启动”,通常在 10-20 分钟后出现“数据库邮件进程正在关闭”消息。
我不知道为什么实时数据库的消息正在工作而训练数据库不工作,即使两个数据库都在同一个 SQL Server 实例上并且应用程序都在同一个服务器上。
email - SQL Server 配置参数历史
我试图找出是否有办法检查对数据库邮件配置参数所做的更改的历史记录。
我在 2 晚前为月度报告创建了自动化,它在开发实例上运行良好。第二天它就不再工作了。在用尽所有其他可能性之后,我最终不得不更改最大文件大小(字节),这解决了这个问题。
由于我正在测试的报告是上个月......文件大小没有改变。这只是没有意义,这是工作然后停止工作。有没有办法查看此参数最近是否更改?
sql - SQL 数据库邮件不工作 - 但我可以使用 VBscript CDO 在同一台服务器上发送电子邮件
我到处搜索(感觉)寻找解决方案和/或指导。我最后的手段是问。我在 Windows Server 上运行 SQL Server 2016。数据库邮件不工作。我已经设置了配置文件,并通过右键单击 SSMS 左侧窗口中的数据库邮件节点提交了一封测试电子邮件。
当我使用查询 SQL 时,电子邮件处于“未发送”状态SELECT * FROM msdb.dbo.sysmail_allitems;
我创建了一个 VBscript 文件以使用 CDO 发送电子邮件 - 使用相同的电子邮件服务器值(主机名、端口、电子邮件发件人、用户名、密码等)。CDO 脚本成功发送电子邮件。
我不知道去哪里对 SQL 进行故障排除。
没有数据写入SELECT * FROM msdb.dbo.sysmail_event_log;
诚然,我对 SQL 配置不是很好——我只需要设置它。我试图确定为什么状态只是停留在“未发送”状态。我可以采取什么措施来强制发送?是否有一些消息或日志在某处我可以查看,以了解它为什么不前进?
编辑:我已将相同的凭据放入 sql 报告服务配置“电子邮件设置”中 - 我能够创建订阅并成功发送电子邮件。这让我很困惑,因为我看到 SSRS 订阅需要访问 SQL 代理并创建计划作业。
那么我在 SQL 中的数据库邮件帐户与我在 SSRS 中创建的帐户有何不同?(我知道我不是在发布图片,但那些向导有个人信息,所以我不知道为我无法共享的数据值发布屏幕截图的价值)。
任何帮助表示赞赏。谢谢
sendgrid - SQL 数据库邮件上的 Sendgrid 设置
我一直在尝试在 SQL 数据库邮件上设置 sendgrid,但一直显示无法将邮件发送到邮件服务器。
这就是我所做的。
- 我有 abc@mydomain.com 的 sendgrid 帐户,并创建了 api 密钥和 SG.xxxx 密码。
- 由于这是产品设置实例,我已经完成了域级别的身份验证,并且我的网站管理员按照 sendgrid 的要求更新了 CNAME。
- 使用 TELNET smtp.sendgrid.net 587 进行测试并使用 SG.xxxx 密码 Base64 编码进行身份验证,这能够将电子邮件从 abc@mydomain.com 发送到 xyz@mydomain.com
- 我使用 abc@mydomoain.com 设置配置文件作为 SQL 通知配置文件并选择基本身份验证,并在数据库邮件中提供“apikey”作为用户名,并提供“SG.xxx”作为密码 - SQL SSMS 中的“配置数据库邮件”选项。未选中 -“服务器需要安全身份验证 (SSL) 连接”端口 587
- 我尝试使用“abc@domain.com”向“xyz@mydomain.com”“发送测试邮件”,但数据库邮件反映如下截图错误
我尝试在数据库邮件配置向导中使用 abc@mydomain.com 和 sendgrid 帐户密码进行基本身份验证,但 sendgrid 建议他们不接受基本身份验证。如果不在基本身份验证下,请帮助我应该如何以及在哪里传递 api 密钥?我尝试使用 msdb.dbo.sysmail_add_account_sp 和更新记录进行更新,但它也没有解决并从数据库邮件发送电子邮件。
任何帮助/指导将不胜感激,或者如果您遇到此问题,您是如何解决的。
sql-server - SQL Server DatabaseMail突然频繁失败
我们每天都会自动发送带有附件的电子邮件,而且多年来一直如此。上周三,电子邮件方面的事情开始频繁失败。如果它 100% 失败,则可能更容易排除故障。但它似乎非常错过了一些命中,所以试图找出其中的模式一直很困难。
事件日志中的描述是:由于邮件服务器故障,无法将邮件发送给收件人。(使用帐户 1 (2021-10-27T07:43:28) 发送邮件。异常消息:无法向邮件服务器发送邮件。(发送邮件失败。)。)
在过去的几年里,相同的配置文件/帐户/参数已经到位。SMTP 服务器是 Office 365,端口 25,并为帐户使用基本身份验证。SQL Server Jobs Agent 帐户也没有任何变化。
我尝试过的事情无济于事 - 为数据库邮件帐户创建另一个帐户/配置文件,增加重试次数,将可执行文件的最短生命周期更改为 12 小时而不是 10 分钟。我尝试亲自运行 sp_send_dbmail 脚本(带附件和不带附件),并且它也被我自己的帐户命中或错过(更经常错过),所以我认为这不是现有的权限/访问问题。
我试图在互联网上搜索所有可能与此相关的想法。我已将 SQL Server 2017 修补到 CU26,希望它可能是修复此问题的更新中的某些内容,但没有运气。我完全不知道这是如何突然出现的。我愿意接受建议。我们的操作小而简单,因此我们在基础设施中没有任何非常复杂的东西。
提前致谢。
编辑时:我确实尝试从连接到 office 365 smtp 的本地计算机(Windows 10)运行 powershell 脚本,并使用数据库邮件的电子邮件配置文件的凭据。它可以在我的本地机器上正常工作。虽然补充说明,当我尝试从 sql server 所在的机器(windows server 2016)执行 powershell 脚本时,它给了我一个关于发送中 4 个参数的错误,通过一些谷歌搜索发现它本质上是一个通用的尝试连接到 smtp 客户端时出错。我希望通过这些信息,它可以更清楚地说明这件事是如何被封装的,因为到目前为止,我对我所尝试的一切都感到茫然。
sql - SQL Server,数据库邮件在 IIS 上发布后无法正常工作
我正在尝试将 SQL 服务器设置为每次在一个表中插入新记录时自动发送一封电子邮件。我已经设置了数据库邮件,当我从 Visual Studio 本地运行应用程序时,它运行良好。但是当我将它发布到公司的 IIS 服务器时,它就失败了,更糟糕的是,任何新记录都没有插入到表中。
什么可以使它在本地 IIS express 上而不是在公司 IIS 服务器上工作?我去了 IIS 管理器,但没有找到任何关于 SMTP 与 SQL 服务器的设置。
这是触发器的代码,它再次起作用但仅在本地起作用。谢谢。
sql-server - 许多 KILLED/ROLLBACK 任务在 SQL Server 上运行,2 天后进度为 0%
我创建了一个存储过程,它发送一封电子邮件,并意外地在其内部调用了存储过程,从而创建了一个无限循环。在执行存储过程的几秒钟内,我意识到我做了什么并修复了循环,但它已经创建了 517 个进程。我杀死了所有的 SPID,但它们陷入了 KILLED/ROLLBACK 状态。
这段代码向我展示了这些过程:
spname.text 显示所有 SPID 的“xp_sysmail_format_query”。两天过去了,517个进程全部卡在这个回滚状态,进度为0%。我们仍然可以使用我们所有的业务应用程序并执行查询,除了EXEC msdb.dbo.sp_send_dbmail
在启动测试电子邮件时,执行卡住并且必须取消。这不好,因为不会发送任何自动生成的电子邮件警告,并且所有其他 sql 电子邮件功能都被阻止。我不确定目前还有哪些其他工作被阻止。
这是一个大问题,我找不到解决方案。我已经阅读了所有我能找到的关于这个的帖子。除了重新启动 SQL 服务器之外,我已经尝试了所有我能想到的方法。一些帖子指出重新启动 SQL 服务器可以解决此问题,而某些状态不重新启动它,或者任务将在重新启动时恢复到终止/回滚状态。我尝试使用 statusonly 再次杀死 spid,但这只是告诉我它们处于完成 0% 的回滚状态。
我应该重新启动服务器,这会解决任何问题吗?除了将数据库恢复到超过 2 天的备份并丢失整个企业在过去几天所做的所有工作之外,还有其他解决方案吗?
任何帮助将不胜感激。