【发布时间】:2015-09-22 16:24:29
【问题描述】:
我正在使用 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'
当我试图检查错误日志时,我发现了以下错误:
消息:
对数据库的读取失败。原因:错误描述是 '这个位置不允许有空格。'。数据: System.Collections.ListDictionaryInternalTargetSite: Microsoft.SqlServer.Management.SqlIMail.Server.Objects.QueueItem GetQueueItemFromCommand(System.Data.SqlClient.SqlCommand)HelpLink: NULLSource:DatabaseMailEngineStackTrace 资料====================
当我检查 sql 电子邮件日志历史时,我发现了这个错误:
邮件未排队。数据库邮件已停止。使用 sysmail_start_sp 启动数据库 邮件。
【问题讨论】:
-
您的 SQL Server 的版本是多少?
SELECT @@VERSION -
检查
@recipients,@copy_recipients,@blind_copy_recipients是否有空格。还要检查SELECT * FROM msdb.dbo.sysmail_unsentitemsSELECT * FROM sysmail_faileditems是否有失败/重试和搜索空间