从SQL Server 2008发送通知电子邮件的问题

Jan*_*Jan 26 sql-server sql-server-2008

我在SQL Server 2008中设置电子邮件通知时遇到问题.

我正在使用SQL Server 2008来构建数据立方体.此过程包含多个作业,这些作业都计划在特定时间每晚运行.要查看作业是否正在运行而没有任何失败,可以设置电子邮件通知.

http://new.smilinginthesun.de/stackoverflow/01emailOperator.png http://new.smilinginthesun.de/stackoverflow/02emailNotification.png

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

我能找到的所有指南都解释了如何设置数据库邮件(例如http://blog.sqlauthority.com/2008/08/23/sql-server-2008-configure-database-mail-send-email-from -sql-database /),但就是这样.
如果我发送邮件来测试功能(通过测试电子邮件按钮或从T-SQL脚本),它工作正常,电子邮件到达.但是,当在作业中使用通知功能时,它甚至不会创建sysmail_mailitemssysmail_log输入.
我也sp_notify_operator成功发送了一封电子邮件.所以操作员设置似乎也有效.(谢谢,Joe Stefanelli,提示.)

为SQL Server 2005编写了一个很好的解决方法,对我来说也很有用:http://www.howtogeek.com/howto/database/sending-automated-job-email-notifications-in-sql-server-with- smtp /,但为什么不能只使用该内置功能?

有没有人知道是否还有其他事情要做,以使电子邮件通知任务正常工作?谢谢你的建议.

小智 56

我迟到但我看到你的帖子有同样的问题.

解决方案是为警报启用邮件配置文件.

为了这:

  1. 右键单击"SQL Server代理"
  2. 然后是"属性".
  3. 然后转到"警报系统"部分.
  4. 勾选"启用邮件配置文件"框.
  5. 然后"确定".
  6. 重新启动SQL Server代理服务.


Jan*_*Jan 12

要从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
Run Code Online (Sandbox Code Playgroud)

  • 嗨Konza,请尝试像`DECLARE @value varchar(255); EXEC master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE',N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent',N'UseDatabaseMail',N'REG_DWORD',@ value OUTPUT; PRINT @ value`,其中; 应该是换行符 - 抱歉,我没有MSSQL Server可以尝试这个,但它可能会这样工作. (2认同)