AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题 / 142080
Accepted
Dave
Dave
Asked: 2016-06-24 11:24:39 +0800 CST2016-06-24 11:24:39 +0800 CST 2016-06-24 11:24:39 +0800 CST

SQL Server 2016 DB 邮件未发送

  • 772

我正在使用 SQL Server 2016 并且玩得很开心……我的 DB 邮件没有发送,而且我没有地方可以查看了。我仔细检查了 DBmail 可执行文件的 SQL 帐户权限 - 它已读取并执行。我为防火墙出站端口 587 输入了一条规则。我尝试了另一个邮件帐户和配置文件,但存在相同的未发送问题。日志(db 邮件日志)中的唯一条目是服务的开始和结束。我能找到的任何地方都没有错误。电子邮件似乎只是进入发送队列并且永远不会离开它。这些帐户可以自己发送和接收电子邮件,也可以从另一台计算机上的 SQL Server 2014 实例发送和接收电子邮件。

我有一个已发送状态为“未发送”的项目队列,并检查了所有正常位置以及所有预期结果,除了一长串未发送邮件:

SELECT * FROM msdb..sysmail_event_log order by log_id DESC

SELECT * FROM dbo.sysmail_mailitems

SELECT * FROM dbo.sysmail_sentitems

USE msdb
SELECT sent_status, *
FROM sysmail_allitems

 SELECT is_broker_enabled FROM sys.databases WHERE name = 'msdb';

 EXECUTE msdb.dbo.sysmail_help_status_sp

我已经尝试将其关闭并再次打开......所以我错过了可以阐明这种情况的 DMV 等吗?这是我搜索中没有的 SQL Server 2016 的已知问题吗?发送此邮件的任何其他可能步骤?

sql-server database-mail
  • 5 5 个回答
  • 60285 Views

5 个回答

  • Voted
  1. Best Answer
    Dave
    2016-06-28T07:40:34+08:002016-06-28T07:40:34+08:00

    一时兴起,在仔细检查权限时,我双击了实际的 DB 邮件可执行文件。SQL Server 2014 机器上的结果是一个空的命令窗口。在 SQL Server 2016 上,单击 DB Mail 可执行文件会显示以下消息:

    在此处输入图像描述

    我在 SQL Server 2016 文档中的任何地方都找不到这个要求,但它显然是一个要求。DB Mail 运行良好,除了安装 .NET 3.5 之外没有其他更改。

    • 17
  2. jalsh
    2018-02-01T23:15:30+08:002018-02-01T23:15:30+08:00

    根据 Microsoft 支持,SQL server 2016 安装程序中存在一个错误,导致数据库邮件在没有 .net 3.5 的情况下无法工作

    通过在DatabaseMail.exe所在的同一文件夹(Binn 文件夹)中创建一个DatabaseMail.exe.config文件来解决此问题,将以下内容写入文件并使用utf-8 编码保存

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
    <startup useLegacyV2RuntimeActivationPolicy="true"> 
    <supportedRuntime version="v4.0"/>     
    <supportedRuntime version="v2.0.50727"/>
    </startup>
    </configuration>
    

    来源: 修复:SQL Server 2016 数据库邮件在未安装 .NET Framework 3.5 的计算机上不起作用

    • 10
  3. Yhagger
    2016-07-29T00:46:54+08:002016-07-29T00:46:54+08:00

    看看这个。这样你只需要复制一个文件而不是安装 .net 3.5。需要先安装CU1。在这里查看更多详情。

    • 4
  4. Alexei
    2018-12-25T04:38:05+08:002018-12-25T04:38:05+08:00

    除了已经提到的原因,在 SQL Server 代理级别激活电子邮件配置文件也很重要,如下所示:

    • 右键单击 SQL Server 代理 > 选择属性
    • 在左侧窗格中选择警报系统

    • 复选标记 > 启用邮件配置文件

    • 验证邮件系统:数据库邮件
    • 验证邮件配置文件:SQLAlerts
    • 复选标记 > 在通知消息中包含电子邮件正文
    • 单击确定。
    • 重新启动代理。
    • 2
  5. George Barwood
    2020-07-01T22:12:31+08:002020-07-01T22:12:31+08:00

    尝试重新启动 SQL Server

    昨天,在运行了几个月没有出现任何问题后,SQL 邮件突然无缘无故停止发送邮件,或者更确切地说,每次尝试都以失败告终,重试也是如此。我最初认为这是目的地的问题(它特定于一个特定的邮件服务器),并询问密码是否已更改 - 回答否。

    最终,在使用 powershell 向自己证明连接详细信息和凭据正常后,我重新启动了 SQL 服务器,一切又开始工作了。

    至于是什么原因造成的:刚刚有相当多的电子邮件在一个批次中发送到目的地——大约 400 封电子邮件,所以这显然是导致问题的原因。其中大约一半是在它开始失败之前发送的。

    如果重新启动 SQL 有问题,您可以尝试 sysmail_stop_sp / sysmail_start_sp(根据评论中的建议)。

    • 1

相关问题

  • SQL Server - 使用聚集索引时如何存储数据页

  • 我需要为每种类型的查询使用单独的索引,还是一个多列索引可以工作?

  • 什么时候应该使用唯一约束而不是唯一索引?

  • 死锁的主要原因是什么,可以预防吗?

  • 如何确定是否需要或需要索引

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve