You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server作业失败时未发送通知邮件问题求助

SQL Server代理作业失败未发送通知邮件的排查点

以下是针对该问题的具体检查项:

  • 确认SQL Server Agent的邮件配置文件匹配
    打开SQL Server Agent属性 → 警报系统 → 邮件会话,勾选"启用邮件配置文件",并确保选择的配置文件与你测试sp_send_dbmail时使用的一致。可通过以下查询查看配置文件列表:

    EXEC msdb.dbo.sysmail_help_profile_sp
    
  • 验证作业通知的触发规则与关联对象
    进入作业属性 → 通知标签页:

    • 确认勾选了"电子邮件"选项
    • 已选择正确的Operator
    • 触发条件设置为"作业失败";同时检查作业步骤的"高级"选项,确保步骤失败时设置为"退出报告失败",而非"继续执行下一步"(否则步骤失败但作业不会标记为失败,无法触发通知)
  • 查看msdb数据库的邮件发送日志
    执行以下查询获取邮件发送的详细状态与错误信息:

    SELECT 
        sent_status,
        subject,
        recipients,
        error_message,
        sent_date
    FROM msdb.dbo.sysmail_allitems
    WHERE subject LIKE '%作业%'
    ORDER BY sent_date DESC;
    

    重点关注sent_status为failed的记录,通过error_message定位具体问题(如邮箱地址错误、账户权限不足等)

  • 检查Operator的邮箱地址准确性
    在SQL Server Agent → 操作员列表中,确认目标Operator绑定的邮箱地址无拼写错误、多余空格或特殊字符

  • 确认SQL Server Agent服务账户的权限
    SQL Server Agent运行账户需要拥有使用Database Mail配置文件的权限,执行以下查询验证:

    EXEC msdb.dbo.sysmail_help_principalprofile_sp
    

    若Agent服务账户(如NT SERVICE\SQLSERVERAGENT)未出现在列表中,需执行以下语句添加权限:

    EXEC msdb.dbo.sysmail_add_principalprofile_sp
        @principal_name = 'NT SERVICE\SQLSERVERAGENT',
        @profile_id = <你的配置文件ID>,
        @is_default = 1;
    
  • 排查收件方邮件系统的拦截规则

    • 检查收件箱的垃圾邮件/垃圾箱文件夹,确认通知邮件未被误判
    • 确认作业通知的发件地址与测试邮件一致,且未被企业邮件网关列入黑名单

内容的提问来源于stack exchange,提问作者whatwhatwhat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 18:40:33