. 因此,通过SQL Server身份验证的用户不能使用@fileattachments附加文件。Windows不允许SQL Server从远程计算机向另一台远程计算机提供凭据。因此,如果命令是从运行SQL Server的计算机以外的计算机运行的,则数据库邮件可能无法从网络共享附加文件
但是上面的方法对我也有用…当exec sp_发送_dbmail时,它将使用数据库引擎帐户访问文件共享。您必须为数据库引擎服务使用域帐户,并授予该帐户对目录的权限 它将接受任何格式,唯一需要注意的是,您需要将serverName\Users添加到文件所在安全性下的用户列表中。然后,邮件将在没有任何问题的情况下发送 谢谢. 因此,通过SQL Server身份验证的用户不能使用@fileattachments附加文件。Windows不允许SQL Server从远程计算机向另一台远程计算机提供凭据。因此,如果命令是从运行SQL Server的计算机以外的计算机运行的,则数据库邮件可能无法从网络共享附加文件,sql,sql-server,sql-server-2008-r2,jobs,Sql,Sql Server,Sql Server 2008 R2,Jobs,但是上面的方法对我也有用…当exec sp_发送_dbmail时,它将使用数据库引擎帐户访问文件共享。您必须为数据库引擎服务使用域帐户,并授予该帐户对目录的权限 它将接受任何格式,唯一需要注意的是,您需要将serverName\Users添加到文件所在安全性下的用户列表中。然后,邮件将在没有任何问题的情况下发送 谢谢 DECLARE @MONTH CHAR(2) DECLARE @DATENOW CHAR(40) DECLARE @YEAR CHAR(4) DECLARE @DAY CHAR(
DECLARE @MONTH CHAR(2)
DECLARE @DATENOW CHAR(40)
DECLARE @YEAR CHAR(4)
DECLARE @DAY CHAR(2)
DECLARE @HOUR CHAR(20)
DECLARE @MINUTES CHAR(2)
DECLARE @SECONDS CHAR(2)
DECLARE @AMPM CHAR(2)
DECLARE @FILENAME CHAR(100)
DECLARE @FILEGEN VARCHAR(255)
DECLARE @SUBJECTDATE VARCHAR(100)
DECLARE @AUTHID VARCHAR(15)
DECLARE @RESPONSECODE VARCHAR(10)
SELECT @MONTH = SUBSTRING(CONVERT(CHAR(10), DATEADD(DAY, 0, GETDATE()),101),1,2),
@DAY = SUBSTRING(CONVERT(CHAR(10),DATEADD(DAY, 0, GETDATE()),101),4,2),
@YEAR = SUBSTRING(CONVERT(CHAR(10),DATEADD(DAY, 0, GETDATE()),101),7,4)
SELECT @HOUR = SUBSTRING(CONVERT(VARCHAR, GETDATE(), 109),13,2),
@MINUTES = SUBSTRING(CONVERT(VARCHAR, GETDATE(), 109),16,2),
@SECONDS = SUBSTRING(CONVERT(VARCHAR, GETDATE(), 109),19,2),
@AMPM= SUBSTRING(CONVERT(VARCHAR, GETDATE(), 109),25,2),
@DATENOW = CONVERT(VARCHAR,GETDATE(),120)
set @AUTHID = '000000'
set @RESPONSECODE = '00'
SELECT @FILENAME
DECLARE @CSRI VARCHAR(4000)
DECLARE @QUERY VARCHAR(8000)
DECLARE @DELPREVFILE VARCHAR(4000)
--CREATE FILE ATTACHMENT
SET @FILENAME = 'Claims Tagged in MMS ' + @YEAR + @MONTH + @DAY + @HOUR + @MINUTES + @SECONDS + @AMPM + '.xls'
SET @FILEGEN = 'C:\'+@FILENAME
SET @QUERY = 'BCP "EXEC ClaimsProcessDoctorLab.dbo.newProc"'
SET @DELPREVFILE = 'del "C:\'+@FILENAME+'"'
SET @CSRI = @QUERY + ' queryout " C:\'+@FILENAME+'" -c -q -C1252 -Uwebuser -Pw3bu53r -S210.8.0.239\MNISQLDB -t "|"'
DECLARE @TOTAL DECIMAL(10,2)
DECLARE @COUNT INTEGER
--GET CLAIM COUNT
SET @COUNT = (SELECT COUNT(A.CLAIMNO) FROM (SELECT c.ClaimNo, c.CardNo, c.PayorCode, c.ProviderCode, p.ProviderName, c.PatientName, c.TotalDue, c.AdmissionDate, b.DateSubmitted, c.TrxnDate, c.AuthorizationCode as SystemTrace, (CONVERT(VARCHAR, GETDATE(), 112) + CONVERT(VARCHAR, c.ClaimNo)) AS RetrievalNo, @AUTHID as AuthResponseID, @RESPONSECODE AS ResponseCode, (DATEDIFF(hour, c.AdmissionDate, @DATENOW)) AS ClaimHour from Claims c
INNER JOIN ProviderInfo..[Providers] p on c.ProviderCode = p.ProviderCode
INNER JOIN BatchHeader b on c.BatchNo = b.BatchNo and c.ProviderCode = b.ProviderCode
where c.ClaimStatus = '99' and b.Status = 'CLOSED' and b.BatchStatus = 'PAID') A where A.ClaimHour >=8);
IF @TOTAL IS NULL
BEGIN
SET @TOTAL = 0
END
IF (@COUNT > 0)
BEGIN
--check for previously generated textfile (delete if exists)
EXEC master..xp_cmdshell @DELPREVFILE
--extract date and populate text file
EXEC master..xp_cmdshell @CSRI
END
--SEND EMAIL JOB
DECLARE @EMAILBODY VARCHAR(6000)
--IF THERE ARE CLAIMS TO EXTRACT
SET @SUBJECTDATE = 'ClaimsTaggedInMMS ' + ' - ' + @MONTH + '/' + @DAY + '/' + @YEAR + ' ' + @HOUR + ':' + @MINUTES + ':' + @SECONDS + ' ' + @AMPM
IF (@COUNT > 0)
BEGIN
SET @EMAILBODY = '<font face="Calibri" size="10" color="#003366">'+ 'Dear Sir/ Ma’am, '+ '<br/><br/>'+ 'These are the generated claims that are tagged in MMS.'+ '<br/><br/>'
SET @EMAILBODY = @EMAILBODY +' '+'Total Count : '+'<b>'+CONVERT(VARCHAR(10),@COUNT)+'</b>'+'<br/><br/>'
SET @emailbody = @emailbody +' '+'Best Regards, '+'<br/>'
SET @emailbody = @emailbody +' '+'System Admin '+'</font><br/><br/>'
SET @emailbody = @emailbody +' '+'<font face="Calibri" size="1" color="#003366">'+ 'Note: This mail is system generated. Do not reply to this email.'+'</font>'
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'ClaimsTaggedInMMS' --'PL_mailprofile'
, @recipients = N'sample_email@mail.com;'
, @blind_copy_recipients = N'sample_email@mail.com'
, @file_attachments= @FILEGEN
, @subject = @SUBJECTDATE
, @body = @emailbody
, @body_format = N'HTML'
END
--NO CLAIMS TO EXTRACT
IF (@COUNT = 0)
BEGIN
SET @emailbody = '<font face="Calibri" size="10" color="#003366">'+ 'Dear Sir/ Ma’am, '+ '<br/><br/>'+ 'No claims were tagged in MMS.'+ '<br/><br/>'
SET @emailbody = @emailbody +' '+'Total Count : '+'<b>0</b>'+'<br/><br/>'
SET @emailbody = @emailbody +' '+'Best Regards, '+'<br/>'
SET @emailbody = @emailbody +' '+'System Admin '+'</font><br/><br/>'
SET @emailbody = @emailbody +' '+'<font face="Calibri" size="1" color="#003366">'+ 'Note: This mail is system generated. Do not reply to this email.'+'</font>'
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'ClaimsTaggedInMMS' --'PL_mailprofile'
, @recipients = N'sample_email@mail.com;'
, @blind_copy_recipients = N'sample_email@mail.com'
, @subject = @SUBJECTDATE
, @body = @emailbody
, @body_format= N'HTML'
END
USE msdb
EXEC sp_send_dbmail
@profile_name = 'profilename',
@recipients = 'test@email.com',
@subject='Test Attachment with Two Files',
@body='Two files have been included in this email.',
@file_attachments='C:\inetpub\test\Log\Log.txt;C:\Users\myname\Downloads\test.txt'