Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Body format - Envio mail SQL

Estas en el tema de Body format - Envio mail SQL en el foro de SQL Server en Foros del Web. Buenas, Estoy preparando un envío de mail mediante SQL. Actualmente tengo este código: Código: SET @s_mailmess = '' SELECT @s_mailmess = '  FECHA: ' + CONVERT(nvarchar(32), ...
  #1 (permalink)  
Antiguo 09/11/2011, 06:27
 
Fecha de Ingreso: junio-2011
Mensajes: 18
Antigüedad: 12 años, 11 meses
Puntos: 0
Body format - Envio mail SQL

Buenas,

Estoy preparando un envío de mail mediante SQL.

Actualmente tengo este código:
Código:
SET @s_mailmess = ''

    SELECT @s_mailmess = '&nbsp;&nbsp;FECHA: ' +  CONVERT(nvarchar(32), GETDATE(), 113) + '<br>'
    SELECT @s_mailmess = @s_mailmess + '&nbsp;&nbsp;NOMBRE: ' + @nombre + '<br>'
    SELECT @s_mailmess = @s_mailmess + '&nbsp;&nbsp;EMPRESA: ' +  @empresa + '<br>'	
    SELECT @s_mailmess = @s_mailmess + '&nbsp;&nbsp;EMAIL: ' +  @email + '<br>'
    SELECT @s_mailmess = @s_mailmess + '&nbsp;&nbsp;SOFTWARE TRAZABILIDAD: ' + @p_trazabilidad + '<br>'
    SELECT @s_mailmess = @s_mailmess + '&nbsp;&nbsp;SOFTWARE GESTIÓN: ' +  @p_gestion + '<br>'
    SELECT @s_mailmess = @s_mailmess + '&nbsp;&nbsp;COMENTARIOS:: ' +  @comentarios + '<br>'

	-- Enviar por correo.
	
	EXEC msdb.dbo.sp_send_dbmail @profile_name='Sistemas',
    @recipients= '[email protected]',
    @subject=  '[CONTACTO WEB]',
    @body= @s_mailmess;
    
    
     
    
end
Con esto, recibo en el mail algo tal que así:

Cita:
&nbsp;&nbsp;FECHA: 09 Nov 2011 13:22:36:067<br>&nbsp;&nbsp;NOMBRE: Pedro <br>&nbsp;&nbsp;EMPRESA: COMPANY SL <br>&nbsp;&nbsp;EMAIL: [email protected]<br>&nbsp;&nbsp;SOFTWARE TRAZABILIDAD: No <br>&nbsp;&nbsp;SOFTWARE GESTIÓN: Navision <br>&nbsp;&nbsp;COMENTARIOS:: Esto es el comentario.<br>
Entonces, lo que hago para corregir esto es añadirle el @body_format = 'HTML', tal que así:

Código:
-- Enviar por correo.
	
	EXEC msdb.dbo.sp_send_dbmail @profile_name='Sistemas',
    @recipients= '[email protected]',
    @subject=  '[CONTACTO WEB]',
    @body= @s_mailmess,
    @body_format= 'HTML';
Lo que obtengo es que ahora recibo los emails vacíos (sin contenido).

¿A qué puede deberse?

Saludos
  #2 (permalink)  
Antiguo 09/11/2011, 16:19
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 16 años, 6 meses
Puntos: 85
Respuesta: Body format - Envio mail SQL

El resultado del primer mensaje se debe a que el valor por defecto de @body_format es 'TEXT', esto hace que el contenido de @body se interprete como texto plano, si quieres que se interprete como html debes configurar en forma explícita @body_format= 'HTML'. Por otro lado, los mensajes vacíos en modo html se pueden dar en caso de un html mal formado dentro de @body o algún filtro en el servidor de correo. Intenta con un mensaje más simple para descartar errores de codificación, también recuerda que el tipo de @body es nvarchar.

Código:
DECLARE @mensaje NVARCHAR(MAX);

SET @mensaje =
  N'<H1>titulo</H1>' +
  N'<table>' +
  N'<tr><th>NOMBRE</th><th>EMPRESA</th>' +
  N'<th>EMAIL</th><th>SOFTWARE TRAZABILIDAD</th><th>SOFTWARE GESTIÓN</th>' +
  N'<th>COMENTARIOS</th></tr>' +
  N'</table>' ;

EXEC msdb.dbo.sp_send_dbmail @recipients='[email protected]',
    @subject = '[CONTACTO WEB]',
    @body = @mensaje,
    @body_format = 'HTML' ;
Saludos
  #3 (permalink)  
Antiguo 10/11/2011, 06:40
 
Fecha de Ingreso: junio-2011
Mensajes: 18
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: Body format - Envio mail SQL

Funciona perfectamente así. Muchas gracias.

Etiquetas: body_format, html, mail, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:37.