如何解决msdb dbo sp在SQL windows服务器中发送dbmail文件附件

时间:2015-11-09 12:45:36

标签: sql-server windows sql-server-2008 windows-server-2008-r2

我需要通过connect msdb.dbo.sp_send_dbmail

附加远程桌面文件

我在SQL服务器中收到错误,如下所示

附件档案\ example.com \ E $ \ Attachments \ test.txt无效。

但是如果我在RUN命令中键入它,它会正确打开文件,如果我设置了本地文件路径,它可以正常工作而没有错误。

这个问题的根本原因是什么?

下面是我的SQL查询。

SET @v_recipients = 'email@example.com'
                SET  @v_copy_recipients = 'email2@example3.com'
                    SET @v_body =  'test mail'
                    SET @v_subject =  'Test mail'
                    SET @v_email_template_id = 1
                SET  @v_queue_id = 1
                    SET @v_attachments = N'\\example.com\E$\Attachments\test.txt'           

set @p_database_profile_name='profile_name'

EXEC msdb.dbo.sp_send_dbmail
                @recipients = @v_recipients,
                @copy_recipients = @v_copy_recipients,
                @body = @v_body, 
                @subject = @v_subject,
                @file_attachments= @v_attachments,

                @profile_name = @p_database_profile_name,
                @body_format = 'HTML' ;

1 个答案:

答案 0 :(得分:2)

附件在安全上下文(操作系统与SQL服务器)方面存在某些限制 - 可能 sp_send_dbmail documentation 的备注部分可能会为您提供线索:

  

...数据库邮件使用当前用户的Microsoft Windows安全上下文来控制对文件的访问。因此,使用SQL Server身份验证进行身份验证的用户无法使用@file_attachments附加文件。 Windows不允许SQL Server从远程计算机向另一台远程计算机提供凭据。因此,如果从运行SQL Server的计算机以外的计算机运行命令,则数据库邮件可能无法从网络共享附加文件...