【问题标题】:SQL Database Mail Not Working - But I can send email on same server using VBscript CDOSQL 数据库邮件不工作 - 但我可以使用 VBscript CDO 在同一台服务器上发送电子邮件
【发布时间】:2021-08-09 22:05:45
【问题描述】:

我到处搜索(感觉)寻找解决方案和/或指导。我最后的手段是问。我在 Windows Server 上运行 SQL Server 2016。数据库邮件不工作。我已经设置了配置文件,并通过右键单击 SSMS 左侧窗口中的数据库邮件节点提交了一封测试电子邮件。

当我使用 SELECT * FROM msdb.dbo.sysmail_allitems; 查询 SQL 时,电子邮件处于“未发送”状态

我创建了一个 VBscript 文件来使用 CDO 发送电子邮件 - 使用相同的电子邮件服务器值(主机名、端口、电子邮件发件人、用户名、密码等)。 CDO 脚本成功发送电子邮件。

我不确定去哪里解决 SQL 问题。

没有数据写入SELECT * FROM msdb.dbo.sysmail_event_log;

诚然,我对 SQL 配置不是很好 - 我只需要设置它。我试图确定为什么状态只是停留在“未发送”状态。我可以采取什么措施来强制发送?是否有一些消息或日志我可以查看以了解为什么它没有向前推进?

编辑:我已将相同的凭据放入 sql 报告服务配置“电子邮件设置”中 - 我能够创建订阅并成功发送电子邮件。这让我很困惑,因为我看到 SSRS 订阅需要访问 SQL 代理并创建计划作业。

那么,我在 SQL 中的数据库邮件帐户与我在 SSRS 中创建的帐户有何不同? (我知道我不是在发布图片,但那些向导有个人信息,所以我不知道为我无法共享的数据值发布屏幕截图的价值。

感谢任何帮助。 谢谢

【问题讨论】:

  • 我想补充一点,'sent_date' 列是空的。这意味着(如我所读)SQL 尚未尝试发送消息。
  • SQL Server 使用基于 .NET Framework 的外部工具 DatabaseMail.exe 来传递 DB 邮件消息。 exec msdb..sysmail_help_status_sp 是否返回 STARTEDselect * from msdb..sysmail_event_log中是否有相关的错误信息?服务器的事件日志查看器中是否有相关的错误消息?
  • @AlwaysLearning。谢谢 - 发现 Windows 服务器有 .Net Framework 4 但没有 3.5。已安装,现在距离越来越近,但仍未发送电子邮件。回答您的问题:是的 - 现在 sysmail_help_status_sp 返回 STARTED。在日志文件中,我收到以下错误:“由于邮件服务器故障,无法将邮件发送给收件人。(使用帐户 2 发送邮件(2021-08-11T09:02:36)。异常消息: 无法向邮件服务器发送邮件。(发送邮件失败。)"
  • 听起来你现在走在了正确的轨道上。应该以 SMTP 4xx 和 5xx 错误代码的形式提供更多信息,这将有助于缩小最终问题的范围。还要在事件查看器的应用程序日志中查看来自DatabaseMail 源的消息。

标签: sql sql-server database-mail


【解决方案1】:

此问题已解决。谢谢@AlwaysLearning。我必须通过安装 .Net Framework 3.5 来更新服务器。然后-按照您的指导,我最终发现我的问题出在 SSL 复选框和端口 465 上。我能够使用没有 SSL 的端口 25 发送电子邮件,并且还可以在端口 587 上发送 TLS。但是 SSL 和端口 465 仍然导致问题。

然而,对我来说,这不是我主要关心的问题。该问题已传递给链中的其他人来解决。我可以使用数据库邮件。

【讨论】:

    猜你喜欢
    • 2013-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多