具有二进制附件的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
文件并查看错误。这可能是安全配置的一些情况。