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

xp_sendmail

Estas en el tema de xp_sendmail en el foro de Bases de Datos General en Foros del Web. Estoy tratando de enviar un mail a través de este store procedure "xp_sendmail", pero no logro preparar el mail con un contenido BODY HTML. Lo ...
  #1 (permalink)  
Antiguo 23/04/2003, 07:37
Avatar de gperdomo  
Fecha de Ingreso: marzo-2002
Ubicación: Caracas
Mensajes: 184
Antigüedad: 22 años, 1 mes
Puntos: 0
xp_sendmail

Estoy tratando de enviar un mail a través de este store procedure "xp_sendmail", pero no logro preparar el mail con un contenido BODY HTML.

Lo que necesito hacer es enviar un mail dependiendo del resultado de un "query" de sql todos los dias. No puedo hacerlo con ASP porque tendría que ejecutar la página ASP todos los dias, en cambio, SQL tiene la opción de tener paquetes de trabajo que pueden ser programados para que se ejecuten diariamente.

Que sugerencias me dan?
__________________
gperdomo.-
  #2 (permalink)  
Antiguo 23/04/2003, 08:50
Avatar de Linterns
Colaborador
 
Fecha de Ingreso: diciembre-2001
Mensajes: 2.799
Antigüedad: 22 años, 4 meses
Puntos: 11
exacto, un package puedes programarlo para ejecutar cada cierto periodo de tiempo y por supuesto desde ahi puedes disparar los procesos batch que te envien los mensajes requeridos.
__________________
Bien se puede recibir una puñalada sin adulación,
pero rara vez se recibe una adulación sin puñalada
** ***
  #3 (permalink)  
Antiguo 23/04/2003, 08:54
Avatar de gperdomo  
Fecha de Ingreso: marzo-2002
Ubicación: Caracas
Mensajes: 184
Antigüedad: 22 años, 1 mes
Puntos: 0
xp_sendmail (Cuerpo del Mensaje)

Si eso losé, pero lo que no logro hacer es esto:
Código:
declare @sql 		nvarchar(1024);

set @sql = N'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">'+ char(13)
	   +N'<html>'+ char(13)
	   +N'<head>'+ char(13)
	   +N'</head>'+ char(13)
	   +N'<body>'+ char(13)
	   +N'<p><b>TEST</b></p>'+ char(13)
	   +N'</body>'+ char(13)
	   +N'</html>'

use master
exec xp_startmail
EXEC xp_sendmail @recipients = '[email protected]', 
   @subject = 'SQL Server Report',
   @message = @sql
__________________
gperdomo.-
  #4 (permalink)  
Antiguo 24/04/2003, 08:28
Avatar de Linterns
Colaborador
 
Fecha de Ingreso: diciembre-2001
Mensajes: 2.799
Antigüedad: 22 años, 4 meses
Puntos: 11
no veo el porque de la necesidad de ejecutar la pagina html, si puedes crear un procedimiento interno en la base de datos para que los envie?
__________________
Bien se puede recibir una puñalada sin adulación,
pero rara vez se recibe una adulación sin puñalada
** ***
  #5 (permalink)  
Antiguo 24/04/2003, 10:09
Avatar de gperdomo  
Fecha de Ingreso: marzo-2002
Ubicación: Caracas
Mensajes: 184
Antigüedad: 22 años, 1 mes
Puntos: 0
xp_sendmail

lo que quiero es preparar el mail de una vez en formato HTML y hacer lo que tu dices ejecutar el procedimiento almacenado para que envie de una vez el mail en formato HTML, pero estoy no me funciona
__________________
gperdomo.-
  #6 (permalink)  
Antiguo 24/04/2003, 12:37
Avatar de Linterns
Colaborador
 
Fecha de Ingreso: diciembre-2001
Mensajes: 2.799
Antigüedad: 22 años, 4 meses
Puntos: 11
Si te envia el correo pero no te lo esta despachando en formato HTML prueba agregando primero al cuerpo lo siguiente:

Código PHP:
set @sql ='MIME-Version: 1.0' +
  
CHR(13)+ CHR(10)+
         
'Content-type: text/html'

 
N'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">'char(13)
       +
N'<html>'char(13)
       +
N'<head>'char(13)
       +
N'</head>'char(13)
       +
N'<body>'char(13)
       +
N'<p><b>TEST</b></p>'char(13)
       +
N'</body>'char(13)
       +
N'</html>

cuerpo = 
             +'
lo que quieras en html 
__________________
Bien se puede recibir una puñalada sin adulación,
pero rara vez se recibe una adulación sin puñalada
** ***

Última edición por Linterns; 24/04/2003 a las 12:39
  #7 (permalink)  
Antiguo 24/04/2003, 13:43
Avatar de gperdomo  
Fecha de Ingreso: marzo-2002
Ubicación: Caracas
Mensajes: 184
Antigüedad: 22 años, 1 mes
Puntos: 0
xp_sendmail

nada no me funciona!!!!
__________________
gperdomo.-
  #8 (permalink)  
Antiguo 24/04/2003, 14:33
Avatar de Linterns
Colaborador
 
Fecha de Ingreso: diciembre-2001
Mensajes: 2.799
Antigüedad: 22 años, 4 meses
Puntos: 11
al menos deberias postear el error que te da
__________________
Bien se puede recibir una puñalada sin adulación,
pero rara vez se recibe una adulación sin puñalada
** ***
  #9 (permalink)  
Antiguo 24/04/2003, 14:38
Avatar de gperdomo  
Fecha de Ingreso: marzo-2002
Ubicación: Caracas
Mensajes: 184
Antigüedad: 22 años, 1 mes
Puntos: 0
xp_sendmail

me muestra esto asi:

Código:
MIME-Version: 1.0

Content-type: text/html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> </head> <body> <p><b>TEST</b></p> </body> </html>
__________________
gperdomo.-
  #10 (permalink)  
Antiguo 25/04/2003, 08:53
Avatar de Linterns
Colaborador
 
Fecha de Ingreso: diciembre-2001
Mensajes: 2.799
Antigüedad: 22 años, 4 meses
Puntos: 11


fijate que a mi me dio el mismo problema con Oracle (no creo que se diferencie mucho con Sql Server) pero lo resolvi poniendo el en cuerpo el Mime, From, Subjec y to.

ej: (Hecho en Oracle)
Código:
PROCEDURE ENVIAR_CORREO
(  P_ENVIA     IN VARCHAR2,
   P_RECIBE    IN VARCHAR2,
   P_ASUNTO    IN VARCHAR2,
   P_MENSAJE   IN VARCHAR2)
IS
  mailhost     VARCHAR2(30) := 'linterns.com';
  mail_conn    utl_smtp.connection; 
  
  crlf VARCHAR2( 2 ):= CHR( 13 ) || CHR( 10 );
  mesg VARCHAR2( 1000 );
BEGIN
  mail_conn := utl_smtp.open_connection(mailhost, 25);
 
  mesg:= 'MIME-Version: 1.0' ||CHR(13)|| CHR(10)||'Content-type: text/html' || CHR(13)||CHR(10)||
         'Date: ' || TO_CHAR( SYSDATE, 'dd Mon yy hh24:mi:ss' ) || crlf ||
         'From:  <'||P_ENVIA||'>' || crlf ||
         'Subject: '||P_ASUNTO || crlf ||
         'To: '||P_RECIBE || crlf ||
         '' || crlf || P_MENSAJE;
  utl_smtp.helo(mail_conn, mailhost);
  utl_smtp.mail(mail_conn, P_ENVIA);
  utl_smtp.rcpt(mail_conn, P_RECIBE);
  utl_smtp.data(mail_conn, mesg);
  utl_smtp.quit(mail_conn);
END;
__________________
Bien se puede recibir una puñalada sin adulación,
pero rara vez se recibe una adulación sin puñalada
** ***
  #11 (permalink)  
Antiguo 25/04/2003, 09:37
Avatar de gperdomo  
Fecha de Ingreso: marzo-2002
Ubicación: Caracas
Mensajes: 184
Antigüedad: 22 años, 1 mes
Puntos: 0
xp_sendmail

coloco lo que me enviaste en la cabezera del MIME, pero igual sigue sin funcionar

Código:
set @sql = N'MIME-Version: 1.0' +CHaR(13)+ CHaR(10)+'Content-type: text/html' +CHaR(13)+CHaR(10)
  	 -- +N+CHaR(13)+ CHaR(10)
          +N'Content-type: text/html'+ char(13)
 	  +N'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">'+ char(13)
          +N'<html>'+ char(13)
          +N'<head>'+ char(13)
          +N'</head>'+ char(13)
          +N'<body>'+ char(13)
          +N'<p><b>TEST</b></p>'+ char(13)
          +N'</body>'+ char(13)
          +N'</html>'


use master
exec xp_startmail
EXEC xp_sendmail @recipients = 'xxx@xxx', 
   @subject = 'SQL Server Report',
   @message = @sql
__________________
gperdomo.-
  #12 (permalink)  
Antiguo 25/04/2003, 17:42
Avatar de Linterns
Colaborador
 
Fecha de Ingreso: diciembre-2001
Mensajes: 2.799
Antigüedad: 22 años, 4 meses
Puntos: 11
y probaste poniendo el el cuerpo
Código:
'MIME-Version: 1.0' ||CHR(13)|| CHR(10)||'Content-type: text/html' || CHR(13)||CHR(10)||
         'Date: ' || TO_CHAR( SYSDATE, 'dd Mon yy hh24:mi:ss' ) || crlf ||
         'From:  <'||P_ENVIA||'>' || crlf ||
         'Subject: '||P_ASUNTO || crlf ||
         'To: '||P_RECIBE || crlf ||
__________________
Bien se puede recibir una puñalada sin adulación,
pero rara vez se recibe una adulación sin puñalada
** ***
  #13 (permalink)  
Antiguo 25/04/2003, 17:52
Avatar de Linterns
Colaborador
 
Fecha de Ingreso: diciembre-2001
Mensajes: 2.799
Antigüedad: 22 años, 4 meses
Puntos: 11
investigando un poco encontre que xp_sendmail no puede distribuir HTML

http://vyaskn.tripod.com/sql_server_tools_faq.htm#q6

Lo raro es que he encontrado unos procedimientos donde utilizan HTML

http://www.sqldev.net/xp/xpsmtp.htm
__________________
Bien se puede recibir una puñalada sin adulación,
pero rara vez se recibe una adulación sin puñalada
** ***
  #14 (permalink)  
Antiguo 25/04/2003, 17:56
Avatar de Linterns
Colaborador
 
Fecha de Ingreso: diciembre-2001
Mensajes: 2.799
Antigüedad: 22 años, 4 meses
Puntos: 11
Código:
g
****************************************************
-- sending HTML mail
-- ****************************************************
declare @rc int

exec @rc = master.dbo.xp_smtp_sendmail 

    @FROM        = N'[email protected]',
    @FROM_NAME   = N'Joe Mailman',

    @TO          = N'[email protected]', 

    @subject     = N'ASCII HTML messagefile', 

    @type        = N'text/html', 
    @messagefile = N'c:\msg.html'
select RC = @rc 

go
Creo que la solucion esta en el @type
todo esta en probar
__________________
Bien se puede recibir una puñalada sin adulación,
pero rara vez se recibe una adulación sin puñalada
** ***
  #15 (permalink)  
Antiguo 25/04/2003, 19:02
Avatar de gperdomo  
Fecha de Ingreso: marzo-2002
Ubicación: Caracas
Mensajes: 184
Antigüedad: 22 años, 1 mes
Puntos: 0
xp_sendmail

probé como me sugeriste y sigo viendo el código HTML
te cito lo que dice la ayuda del parametro @TYPE de la función xp_sendmail.
Cita:


@type = 'type'

Is the input message type based on the MAPI mail definition:

IP[M | C].Vendorname.subclass

If type is NULL, message types beginning with IPM appear in the inbox of the mail client and are found or read by xp_findnextmsg. Message types beginning with IPC do not appear in the inbox of the mail client and must be found or read by setting the type parameter. The default is NULL.

For more information about using custom message types, see the Microsoft Windows NT Resource Kit or the Microsoft Mail Technical Reference, available separately.
Código:
set @sql = N'MIME-Version: 1.0' +CHaR(13)+ CHaR(10)+'Content-type: text/html' +CHaR(13)+CHaR(10)
  	 -- +N+CHaR(13)+ CHaR(10)
          --+N'Content-type: text/html'+ char(13)
 	  --+N'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">'+ char(13)
          +N'<html>'+ char(13)
          +N'<head>'+ char(13)
          +N'</head>'+ char(13)
          +N'<body>'+ char(13)
          +N'<p><b>TEST</b></p>'+ char(13)
          +N'</body>'+ char(13)
          +N'</html>'


--use master
exec xp_startmail
EXEC xp_sendmail @recipients = 'xxx', 
   @subject = 'SQL Server Report',
   @message = @sql,
@type        = 'text/html'
__________________
gperdomo.-
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 12:25.