具有二进制附件的sp_send_dbmail问题

问题描述:

我正在尝试使用sp_send_dbmail发送附件。 附件存储在表格中的varbinary(MAX)列中。这是我的查询:具有二进制附件的sp_send_dbmail问题

EXEC msdb.dbo.sp_send_dbmail 
     @recipients='[email protected]', 
     @subject = 'Test Attachment', 
     @body = 'Test', 
     @body_format = 'HTML', 
     @profile_name = 'intranetadmin', 
     @query = 'Select DocumentData from [myDB].[dbo].[Documents] Where DocumentID = 8', 
     @query_result_header = 0, 
     @attach_query_result_as_file = 1, 
     @query_attachment_filename = 'Test.pdf', 
     @exclude_query_output = 1, 
     @query_no_truncate = 0; 

该电子邮件发送成功与pdf附件。但是,当涉及到打开附件,我得到一个错误。我认为该文件的大小正在被截断,即使我在我的查询中明确地声明了no。

我已经检查了数据库邮件设置中允许的最大邮件大小,它目前是104857600字节(100mb),我试图发送的文件远不及此大小 - 所以我有点困惑。

尝试将@query_no_truncate参数设置为1.当在查询中使用大型可变长度数据类型并且此选项为0或未指定时,数据将被剪切为256个字符。参考:http://msdn.microsoft.com/en-us/library/ms190307.aspx

我知道这是一个古老的线程,但我刚刚遇到同样的问题。问题是SQL报告了错误,并将错误消息存储在附件中。

更改附件的名称使其具有.txt扩展名并发送电子邮件。打开.txt文件并查看错误。这可能是安全配置的一些情况。