首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sql server sp_send_dbmail

sql server sp_send_dbmail
EN

Stack Overflow用户
提问于 2015-09-22 16:24:29
回答 2查看 13.3K关注 0票数 3

我正在使用Server的sp_send_dbmail存储过程通过数据库发送邮件。

但是当我执行这个过程时,它会关闭db邮件过程。我试着用sysmail_start_sp重新启动它。但7-8秒后又要关闭了。

我尝试使用下面的代码:

代码语言:javascript
复制
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'

当我试图检查错误日志时,我发现了以下错误:

消息: 对数据库的读取失败。原因:错误描述是‘此位置不允许空白。’..Data: System.Collections.ListDictionaryInternalTargetSite: Microsoft.SqlServer.Management.SqlIMail.Server.Objects.QueueItem GetQueueItemFromCommand(System.Data.SqlClient.SqlCommand)HelpLink: NULLSource: DatabaseMailEngineStackTrace Information===================

此外,当我检查sql电子邮件日志历史记录时,我发现了以下错误:

邮件没有排队。数据库邮件停止。使用sysmail_start_sp启动数据库邮件。

EN

回答 2

Stack Overflow用户

发布于 2017-07-06 08:05:21

每当您尝试从数据库邮件发送测试邮件时,它都会抛出以下错误消息:

Msg 14641,16级,状态1,过程sp_send_dbmail,邮件未排队。数据库邮件停止。使用sysmail_start_sp启动数据库邮件。

  1. 首先,通过在SSMS中执行以下命令,确保启用了数据库中的Service消息传递: 从名称= 'msdb‘的is_broker_enabled中选择sys.databases 如果上述查询的结果为0,则激活service。 激活Service允许将消息传递到数据库。必须创建Service端点以从实例外部发送和接收消息。 若要激活数据库中的Service,请使用以下命令: 使用母版;去更改数据库DatabaseName集ENABLE_BROKER;
  2. 如果启用了Service,那么通过在中执行以下查询,确认是否启用了数据库邮件: sp_configure‘显示高级’,1 GO重新配置GO sp_configure GO 如果结果集将run_value显示为1,则启用数据库邮件。
  3. 如果禁用数据库邮件选项,则运行以下查询以启用该选项: sp_configure‘数据库邮件XPs',1;去重新配置;去sp_configure’显示高级‘,0;去重新配置;去
  4. 启用数据库邮件之后,启动数据库邮件外部程序,在msdb数据库上使用下面提到的查询: 使用msdb;执行msdb.dbo.sysmail_start_sp;
  5. 若要确认数据库邮件外部程序已启动,请运行以下查询: EXEC msdb.dbo.sysmail_help_status_sp;
  6. 如果启动了数据库邮件外部程序,那么使用以下语句检查邮件队列的状态: EXEC msdb.dbo.sysmail_help_queue_sp @queue_type = 'mail';
票数 11
EN

Stack Overflow用户

发布于 2017-06-12 12:51:26

有一些问题需要排除,首先要通过执行以下命令检查数据库邮件是否启用

代码语言:javascript
复制
SELECT is_broker_enabled FROM sys.databases WHERE name = 'msdb'

如果上面的结果是0,则通过以下本指南激活service

如果上面的结果是1,那么检查Database的状态,执行以下语句:

代码语言:javascript
复制
EXECUTE dbo.sysmail_help_status_sp

若要在邮件主机数据库中启动数据库邮件,请在msdb数据库中运行以下命令:

代码语言:javascript
复制
EXECUTE dbo.sysmail_start_sp
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32722006

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档