Pregunta

Estoy usando un disparador en una tabla para enviar un correo electrónico utilizando sp_send_dbmail.

Quiero incluir un archivo adjunto en el correo electrónico de un tipo de imagen.

Los datos en bruto para el JPEG se almacenan en la columna de la ndl_Image que es de tipo binario.

Tengo el siguiente código: -

DECLARE @ReferenceID varchar(max)
DECLARE @Recipient varchar(Max)
DECLARE @Body varchar(max)
DECLARE @Subject varchar(max)
DECLARE @Q varchar(max)

--Get the EntryId and FormID for the inserted data.
SET @ReferenceID = 40
SET @Recipient = (SELECT ndl_CategorySendTo FROM ndl_config WHERE ndl_CategoryName = 'Dead Animal')
SET @Body = '<html>A new request has been created.</html>'
SET @Subject = 'NDL Report It: New Request #'+@ReferenceID
SET @Q = 'SELECT ndl_Image from dbo.ndl_data where ndl_ID ='+@ReferenceID
--Execute the stored procedure to send mail.
EXEC msdb.dbo.sp_send_dbmail

--Pass it the following paramaters.
@recipients=@Recipient,
@body=@Body, 
@subject=@Subject,
@profile_name='NDLProfile',
@body_format ='HTML',
    @execute_query_database='NDL_MX',
@query = @Q,
@attach_query_result_as_file = 1,
@query_attachment_filename = 'image.jpg'

Esto funciona bien, pero parece que vuelve la consulta como un archivo de texto si comento hacia fuera la última línea.

¿Cómo puedo obtener los datos adjuntos como un archivo JPEG ????

Gracias.

¿Fue útil?

Solución

No creo que esto es posible. Tal como se especifica en la documentación de sp_send_dbmail :

"Cuando se especifica una consulta, el resultado conjunto tiene el formato de texto en línea. Los datos binarios en el resultado se envía en hexadecimal formato. "[énfasis añadido]

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top