[SQL Mail TSQL] Envió de correos desde SQL 2005 parte 2.

28 01 2009

Saludos nuevamente amigos, si leyeron el post anterior y todo les funciono correctamente, les será sumamente sencillo realizar el siguiente script TSQL, lo que haremos es enviar correos electrónicos con código TSQL desde un perfil ya configurado en el post anterior, a continuación les coloco el código:

EXEC msdb.dbo.sp_send_dbmail
    @profile_name = 'sqlPsyPerfil',--Perfil de correo configurado.
    @recipients = 'ivan.rangel.c@gmail.com', -- A quien se va enviar el correo.
    @body = 'Este correo es enviado desde SQL Server 2005 con código TSQL por sqlPsyKrest Blog',--Cuerpo del correo.
    @subject = 'Correo desde TSQL - MS SQL 2005 sqlPsyKrest.',--Asunto del correo.
    @importance = 'High' --[Low | Normal| High] Prioridad del correo.

 

En el script anterior se hizo uso del procedimiento almacenado de Sistema sp_send_dbmail, su función es la de enviar mensajes de correo electrónico desde la base de datos, para ejecutarlo este necesita una serie de parámetros, los cuales no todos son necesarios, los que en este caso se utilizan son:

@profile_name: Perfil de correo de donde se enviara el correo.

@recipients: Destinatarios del correo uno o más.

@body: Cuerpo del correo, por default es de tipo texto.

@subject: Asunto del correo.

@importance = Prioridad del envío del correo.

Dependiendo de la carga que tenga su servidor y de la prioridad configurada en el envió del correo, el correo llegara o se tardara mas tiempo en ser enviado, si no existieron problemas, el correo llegara correctamente a su destino.

image

Ahora enviaremos un correo electrónico con TSQL a partir de una consulta a una Tabla formateada en Tabla HTML.

DECLARE @tableHTML  NVARCHAR(MAX);

SET @tableHTML = 
N'<table border="1" cellpadding="5" cellspacing="0">'+
N'<thead>'+
N'<tr style=''background: Navy;    color: White;font-weight: bold;''>'+
N'<th>Id</th>'+
N'<th>Nombre</th>'+
N'<th>Apellidos</th>'+
N'<th>Email</th>'+
N'<th>Pass</th>'+
N'</tr>'+
N'</thead>'+
N'<tbody>'+
CAST ( ( SELECT td = id, '',
                td = nombre, '',
                td = apellidos, '',
                td = email, '',
                td = pass, ''                
              FROM dbo.USUARIO_SYS
              ORDER BY nombre, apellidos                       
              FOR XML PATH('tr'), TYPE 
    ) AS NVARCHAR(MAX) ) + 
N'</tbody>'+
N'</table>'


EXEC msdb.dbo.sp_send_dbmail
    @profile_name = 'sqlPsyPerfil',
    @recipients = 'ivan.rangel.c@gmail.com',    
    @subject = 'Correo desde TSQL 2005 con HTML',
    @body = @tableHTML,
    @body_format = 'HTML',
    @importance = 'High'

Como primer paso declaramos un variable @tablaHTML la cual contendra el cuerpo del mensaje en formato de tabla HTML con ayuda de la clausula FOR XML vista ya en posts anteriores, lo que hace la consulta es tranformar los datos de consulta en texto con características de lenguaje de marcado HTML.

Por ultimo solo nos queda asignar la variable @tablaHTML como nuestro contenido del mensaje, he indicar que el formato del mensaje será HTML con @body_format = ‘HTML’, los demas parametros ya sabemos como configurarlos, y de nuevo solo nos queda esperar a que llegue el correo a su destino como lo muestra la siguiente imagen.

image

Espero les sea de ayuda. Dejen Comentarios!!!





[SQL Mail] Envió de Correos desde SQL 2005.

28 01 2009

Saludos amigos, en esta ocasión explicare un breve ejemplo de como configurar la Superficie de SQL Server para el envió de correos electrónicos.

Como primer paso tienen que ir a la opción del menú de Microsoft SQL Server 2005 >>  Herramientas de configuración >> Configuración de superficie de SQL server.

image

Aparecerá una ventana de configuración de la cual deben de dar clic en la opción de Configuración de superficie para características

image

En la ventana que se abre, del árbol de opciones, en el nodo Motor de base de datos>> Correo electrónico de base de datos, deben de activar la casilla que dice: Habilitar procedimientos almacenados de correo electrónico de base de datos y dar clic en el botón aplicar.

image

La otra opción a configurar es la de SQL Mail al mismo nivel del árbol de opciones, y activar la casilla que dice: Habilitar procedimientos almacenados de SQL Mail, dar clic en el botón aplicar y posteriormente en aceptar.

image

Hasta este momento están habilitadas las opciones de correo electrónico, falta configurar una cuenta y un perfil, el cual servirá para enviar los correos electrónicos. Antes de comenzar necesitas los siguientes datos que son los mismos de una cuenta que se configura en Microsoft Outlook.

  1. Dirección de correo electrónico.
  2. Servidor de correo saliente SMTP.

Nota: Si tu servidor de salida requiere autenticación necesitas anexar:

  1. Nombre de usuario (SMTP).
  2. Contraseña (SMTP).

Ya que tienes a la mano esos datos, te vas al Explorador de objetos de SQL Server 2005 y en la opción del árbol de opciones Administración >> Correo electrónico de base de datos haces clic derecho y del menú contextual seleccionas la opción Configurar correo electrónico de base de datos.

image

 

En el asistente de configuración de correo, seleccionen la casilla de Instalar Correo electrónico de base de datos y den clic en siguiente.

image

Les aparecerá una ventana para crear un perfil de correo, escriban un nombre de perfil y una descripción.

image

ahora tendremos que crear una cuenta SMTP al perfil, hacemos clic en el botón Agregar…, Aparecerá  una ventana para agregar una nueva cuenta de correo, escriban un nombre de cuenta, descripción, la dirección de correo de la que se enviaran los correos, un nombre a mostrar, el nombre del servidor de salida, y si lo requiere, los datos de autenticación SMTP con el nombre de usuario y contraseña, den clic en el botón Aceptar y posteriormente en el botón siguiente .

 

image 

Aparecerá una ventana de Administrar la seguridad del perfil, de la lista de perfiles seleccionen el que acabamos de crear y damos clic en el botón Siguiente.

image

En la ventana de Configurar parámetros del sistema hacemos clic en Siguiente.

En la ventana de Finalización del asistente damos clic en Finalizar.

Si todos los datos fueron correctos, aparecerá una ventana de Configurando que indicara que la configuración de correo se ejecuto correctamente, no debe de aparecer ningún error o advertencia y por ultimo damos clic en el botó Cerrar.

image

Ahora solo nos queda enviar un correo electrónico de prueba, nos vamos al explorador de objetos en el nodo Administración >> Correo electrónico de base da datos, damos clic derecho y seleccionamos la opción Enviar correo electrónico de prueba.

 

image

 

Aparecer una pequeña ventana donde seleccionaremos el perfil que creamos hace algunos pasos, escribiremos la dirección de correo a la que queremos enviar,  un asunto y cuerpo del mensaje, damos clic en el botón Enviar correo electrónico.

 

image

Ahora solo nos queda esperar que haya llegado el correo electrónico y si es así listo!!! ya tenemos todo funcionando para el envió de Correos desde SQL Server 2005.

image

En el próximo Post enviaremos correos desde código TSQL utilizando el perfil que acabamos de crear.

Espero les sea de ayuda, Dejen cometarios!!!








Seguir

Get every new post delivered to your Inbox.