代码之家  ›  专栏  ›  技术社区  ›  Jan

从SQL Server 2008发送通知电子邮件时出现问题

  •  26
  • Jan  · 技术社区  · 14 年前

    在SQLServer2008中设置电子邮件通知时遇到问题。

    我正在使用SQLServer2008构建一个数据立方体。这个过程由几个作业组成,这些作业都计划在每晚的特定时间运行。要查看作业是否在运行时没有出现任何故障,可以设置电子邮件通知。


    (来源: smilinginthesun.de )


    smilinginthesun.de )

    不幸的是,没有电子邮件被发送,即使我认为我已经正确设置了数据库邮件。

    所有我能找到的指南只是解释,如何设置数据库邮件(例如。 http://blog.sqlauthority.com/2008/08/23/sql-server-2008-configure-database-mail-send-email-from-sql-database/
    如果我发送了一封邮件来测试功能(通过testemail按钮或T-SQL脚本),它就可以正常工作,邮件也会到达。但在作业中使用通知功能时,它甚至不会创建 sysmail_mailitems sysmail_log
    我还发送了一封电子邮件使用 sp_notify_operator ,成功。所以操作员设置似乎也起作用了。(乔·斯特凡内利,谢谢你的提示。)

    为SQL Server 2005编写了一个很好的变通方法,对我也很有用: http://www.howtogeek.com/howto/database/sending-automated-job-email-notifications-in-sql-server-with-smtp/

    是否有人知道还有什么事情要做,使电子邮件通知任务正常工作?谢谢你的建议。

    4 回复  |  直到 5 年前
        1
  •  56
  •   techie007 gdbdable    12 年前

    解决方案是启用警报的邮件配置文件。

    为此:

    1. 然后是“属性”。
    2. 勾选“启用邮件配置文件”框。
    3. 然后“好”。
    4. 重新启动SQL Server代理服务。
        2
  •  12
  •   Jan    14 年前

    要从SQL Server代理中的代理作业发送电子邮件通知,必须激活报警系统。我们做到了。重新启动代理后,应使用数据库邮件系统。不幸的是,这不起作用。代理仍在尝试访问Mapi配置文件(如在SQL 2000中)。

    未设置以下注册表值: "UseDatabaseMail"=dword:00000001
    将其设置为 1
    您可以在SQL server中直接执行以下操作:

    EXEC master.dbo.xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'UseDatabaseMail', N'REG_DWORD', 1
    
        3
  •  3
  •   Yaroslav    12 年前

    我已经试过了。但仍然没有成功。。。然后我重新启动了SQL代理。这就是为什么我的工作电子邮件通知工作。

        4
  •  1
  •   Derreck Dean    8 年前

    RAISERROR (N'Test alert!', 20, 1) WITH LOG; ,没有收到电子邮件。 服务帐户 显然,虚拟账户 NT Service\SQLSERVERAGENT (或不管您的默认值是什么)没有访问网络上的对象的权限,这包括电子邮件。

    要修复此问题,请将服务更改为使用用户组下的本地帐户,重新启动SQLServer代理,然后尝试运行引发错误的命令,如 RAISERROR