2010-08-16 56 views
27

我有一个用户组的Windows帐户,并试图执行sp_send_dbmail但出现错误:配置文件名称无效。但是,当我以管理员身份登录并执行sp_send_dbmail时,它设法发送电子邮件,显然配置文件名称存在于服务器上。任何人都可以请求帮助吗?配置文件名称无效

回答

37

您需要授予用户或组使用该配置文件的权限。需要将它们添加到msdb数据库中,然后在维护邮件安全性时,才会在邮件向导中看到它们。

这里读了安全性:http://msdn.microsoft.com/en-us/library/ms175887.aspx

见这里的邮件程序的列表:http://msdn.microsoft.com/en-us/library/ms177580.aspx

示例脚本“TestUser用户”使用命名大会管理员邮件“的轮廓。


USE [msdb] 
GO 
CREATE USER [TestUser] FOR LOGIN [testuser] 
GO 
USE [msdb] 
GO 
EXEC sp_addrolemember N'DatabaseMailUserRole', N'TestUser' 
GO 

EXECUTE msdb.dbo.sysmail_add_principalprofile_sp 
    @profile_name = 'General Admin Mail', 
    @principal_name = 'TestUser', 
    @is_default = 1 ; 
+0

请问您可以给我示例脚本如何将用户分配到正确的组? – user384080 2010-08-17 00:38:17

+6

因为我是一个很好的人;)我为你提供了这个脚本。 – Sam 2010-08-18 23:18:16

+3

如果您通过某些类型的代码指定了错误配置文件名称,也会发生此错误...即,sp_send_dbmail @profile_name = N'Some配置文件不存在'等等...... 也会引发此错误。 – 2014-12-29 21:36:07

13

我得到了同样的问题也。这就是我所做的。

如果您已经完成授予用户/组使用配置文件名称的权限。
1.转到configuration Wizard of Database Mail
2.选中管理配置文件安全
3.在公共配置文件选项卡,请检查您的配置文件名称
4.在专用配置文件选项卡,选择NT AUTHORITY \ NETWORK SERVICE用户名和检查配置文件名称
5.对于NT AUTHORITY \ SYSTEM用户名,此时执行#4
6.单击下一步直到完成。

就是这样。希望能帮助到你。

+0

这是我的修复!谢谢! – 2015-07-24 13:12:11

+0

...也为我 - 谢谢:) – nesmoht 2016-06-10 09:30:09

+1

如果您没有“NT AUTHORITY \ NETWORK SERVICE”作为特定SQL实例中的用户,该怎么办?我以另一种方式解决了它。看到我上面的答案。 – Fandango68 2017-11-14 01:42:41

0

你是否启用配置文件的SQL Server代理?这是在DatabaseMail中创建电子邮件配置文件时错过的常见步骤。

步骤:

  • 在对象资源管理器(SSMS)
  • 单击属性上的SQL Server代理右击
  • 点击左侧导航预警系统选项卡上
  • 启用邮件配置文件
  • 设置邮件系统和邮件配置文件
  • 单击确定
  • 重新启动SQL Server代理