- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 SQL Server 的 sp_send_dbmail
存储过程通过数据库发送邮件。
但是当我执行该程序时,它会关闭数据库邮件程序。我尝试通过 sysmail_start_sp
再次启动它。但它会在 7-8 秒后再次关闭。
我尝试了以下代码:
EXEC msdb..sp_send_dbmail @profile_name = 'Test',
@recipients = 'abc@gmail.com',
@subject = 'test mail',
@body_format = 'HTML',
@body = 'test mail',
@from_address = 'xyz@yahoo.com'
当我试图检查错误日志时,我发现了以下错误:
Message:
The read on the database failed. Reason: The error description is 'Whitespace is not allowed at this location.'.Data: System.Collections.ListDictionaryInternalTargetSite: Microsoft.SqlServer.Management.SqlIMail.Server.Objects.QueueItem GetQueueItemFromCommand(System.Data.SqlClient.SqlCommand)HelpLink: NULLSource: DatabaseMailEngineStackTrace Information===================
当我检查 sql 电子邮件日志历史时,我发现了这个错误:
Mail not queued. Database Mail is stopped. Use sysmail_start_sp to start Database Mail.
最佳答案
每当您尝试从数据库邮件发送测试邮件时;它抛出以下错误消息:
Msg 14641, Level 16, State 1, Procedure sp_send_dbmail, Mail not queued. Database Mail is stopped. Use sysmail_start_sp to start Database Mail.
首先确保通过在 SSMS 中执行以下命令来启用数据库中的 Service Broker 消息传递:
SELECT is_broker_enabled FROM sys.databases WHERE name = 'msdb'
如果上述查询结果为0,则激活服务代理。
激活 Service Broker 允许将消息传递到数据库。必须创建一个 Service Broker 端点来发送和接收来自实异常(exception)部的消息。
要在数据库中激活 Service Broker,请使用以下命令:
USE master ;
GO
ALTER DATABASE DatabaseName SET ENABLE_BROKER ;
GO
如果启用了 Service Broker,则通过在 SQL Server Management Studio 中执行以下查询来确认是否启用了数据库邮件:
sp_configure 'show advanced', 1
GO
RECONFIGURE
GO
sp_configure
GO
如果结果集显示 run_value 为 1,则启用数据库邮件。
如果数据库邮件选项被禁用,则运行以下查询以启用它:
sp_configure 'Database Mail XPs', 1;
GO
RECONFIGURE;
GO
sp_configure 'show advanced', 0;
GO
RECONFIGURE;
GO
一旦启用数据库邮件,然后启动数据库邮件外部程序,在 msdb 数据库上使用下面提到的查询:
USE msdb ;
EXEC msdb.dbo.sysmail_start_sp;
要确认数据库邮件外部程序已启动,请运行下面提到的查询:
EXEC msdb.dbo.sysmail_help_status_sp;
如果数据库邮件外部程序已启动,则使用以下语句检查邮件队列的状态:
EXEC msdb.dbo.sysmail_help_queue_sp @queue_type = 'mail';
关于sql-server - sql server sp_send_dbmail,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32722006/
我正在尝试使用 sp_send_dbmail 发送附件。附件存储在表的 varbinary(MAX) 列中。这是我的查询: EXEC msdb.dbo.sp_send_dbmail @
我正在研究一个 SQL 存储过程,它应该发送带有查询结果的附件。 我正在使用 sp_send_dbmail发送电子邮件。 在我想发送的查询中,我将 加入到一个表变量中。当我执行存储过程时,我收到一条错
我在 SQL Server 2008 中使用 sp_send_dbmail 发送查询结果。我将查询移动到一个过程中,并尝试在 sp_send_dbmail 过程中使用该过程,如下所示: EXEC ms
我使用的是 SQL Server 2008 R2。当我执行 sp_send_dbmail 时,我无法更改 DBA 指定的默认地址 FROM_ADDRESS。如果不起作用为什么还有这个参数? 如何指定“
我在此 MSDN 页面上使用类似于示例 C 的内容: http://msdn.microsoft.com/en-us/library/ms190307.aspx DECLARE @tableHTML
我已经写了一个SQL查询。但这给了我一个错误。 DECLARE @Delimiter Char(1) SET @Delimiter = CHAR(9) EXEC MSDB.dbo.sp_Send_DB
我正在尝试使用 sp_send_dbmail 发送电子邮件。我需要它将一个查询作为附件发送,另一个查询作为电子邮件正文的一部分发送。问题是 sp_send_dbmail 只有一个 @query 参数,
我需要发送带有文件附件的电子邮件。附件必须来自图像类型数据字段。在查询窗口和存储过程中运行以下代码时,不会发送电子邮件。在查询窗口中,它只显示“命令成功完成”,但没有电子邮件。 EXEC msdb.
我有一个每天晚上运行的存储过程,它应该将查询结果发送给多个收件人。然而,在大多数情况下,它最终会在一分钟后发送一封重复的电子邮件。我使用的代码如下(所有电子邮件和数据库引用均已更改): EXEC ms
正如标题所说,我正在尝试制作一个存储过程,用于将电子邮件发送到数据库中存储的地址,通常包括多个收件人。我已经尝试了几种方法来解决这个问题,但我认为我正在碰壁,我会很感激任何人提供的任何意见。我遇到的主
有没有办法为我的数据库中的用户提供访问权限以执行 msdb.dbo.sp_send_dbmail 无需将它们添加到 MSDB 数据库和 DatabaseMailUserRole? 我试过这个: ALT
我在 SQL2005 中使用 sp_send_dbmail 发送带有附件中结果的电子邮件。发送附件时,它是 UCS-2 编码的,我希望它是 ANSI 或 UTF-8。 这是 SQL EXEC msdb
我们使用 sp_send_dbmail 来通知我们某些问题,有时我们会在电子邮件中附加文件。有时我们会收到错误 32(文件正在使用)错误。在这种情况下,我已经将一些代码放在一起发送没有附件的电子邮件,
我正在使用 SQL Server 的 sp_send_dbmail 存储过程通过数据库发送邮件。 但是当我执行该程序时,它会关闭数据库邮件程序。我尝试通过 sysmail_start_sp 再次启动它
我在 sp_send_dbmail 中使用 @query 边界发送一封包含警告列表的电子邮件(警告由 @query 边界返回)。 @query 边界在电子邮件中以文本形式列出。从 @query 边界返
我正在使用 msdb.dbo.sp_send_dbmail 发送电子邮件。有时电子邮件不发送。我有失败的电子邮件列表。 SELECT TOP 10 * from msdb.dbo.sysmail_ev
我收到此错误: Msg 229, Level 14, State 5, Procedure sp_send_dbmail, Line 1 The EXECUTE permission was deni
我正在尝试在 SQL Server 2008 中创建一个存储过程,用于发送插入到出站表中的电子邮件。我正在使用 sp_send_dbmail。它使用游标遍历出站表。我还想删除包含我已发送的电子邮件的记
我正在使用 msdb.dbo.sp_send_dbmail 发送电子邮件。有时电子邮件不发送。我有失败的电子邮件列表。 SELECT TOP 10 * from msdb.dbo.sysmail_ev
我正在寻找一种方法来检查使用 sp_send_dbmail 排队的特定电子邮件是否最终从我们的 Exchange 服务器成功发送。我查看了系统表 msdb.dbo.sysmail_mailitems
我是一名优秀的程序员,十分优秀!