Servicio DatabaseMail en SQL Server 2012

Saludos!!, muchos han intentado configurar el servicio para enviar correos de Sql Server en la versión Express, pero ha diferencia de las versiones como la Standar la configuración es diferente, esta como "Oculta". Para poder usar este servicio podemos usar dos opciones.

La primera con interfaz de usuario. 

Abrimos el sql server management.


Luego en el explorador de objetos damos click derecho y seleccionamos Facets


Nos aparecera un pantalla, luego seleccionaremos "Surface Area Configuration"


Por ultimo seleccionaremos la propiedad "DatabaseMailEnabled" igual a "True"


También lo podemos hacer vía un script el cual solo tienen que ejecutar y el servicio se habilita.

USE master
Go
EXEC sp_configure 'show advanced options', 1
Go
RECONFIGURE
Go
EXEC sp_configure 'Database Mail XPs', 1
Go
RECONFIGURE
Go
EXEC sp_configure 'show advanced options', 0
Go
RECONFIGURE
Go

Ya que tenemos el servicio de DatabaseMail configurado vamos a la siguiente parte , que es la configuración de los perfiles. Para esto podemos hacer es utilizar el  procedimiento almacenado del llamado sysmail_add_account_sp. Los parámetros que vamos a utilizar son : 

EXECUTE msdb.dbo.sysmail_add_account_sp    
   @account_name='PruebaCorreo',                               --Nombre del perfil
   @email_address='PruebaCorreo@outlook.com',        --Correo a usar
   @display_name='SQL MAIL',                                   --Nombre que se va a mostrar
   @replyto_address='PruebaCorreo@outlook.com',    -- Correo para responder
   @description='Perfil de prueba',                                  --Descripción del perfil que esta creado
   @mailserver_name='smtp.live.com',                            --Servidor de correo a usar
   @mailserver_type='SMTP',                                         
   @port=587,                                                              --Puerto
   @username='PruebaCorreo@outlook.com',              --Usuario de su cuenta de correo
   @password = 'PruebaCorreo',                                   --Contraseña de correo
   @use_default_credentials=0, 
   @enable_ssl=1                                                       

GO

EXECUTE msdb.dbo.sysmail_add_profile_sp
@profile_name = 'PruebaCorreo',
@description = 'Perfil de prueba para enviar correos'

GO

EXECUTE msdb.dbo.sysmail_add_profileaccount_sp
@profile_name = 'PruebaCorreo',
@account_name = 'PruebaCorreo',
@sequence_number = 1

GO

EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
@profile_name = 'PruebaCorreo',
@principal_name = 'public',
@is_default = 1 ;

Ejecutamos el script  el cual realiza la creación de los perfiles para enviar correos. Finalmente para enviar los correos utilizáramos este script.

exec msdb.dbo.sp_send_dbmail 
@profile_name = 'PruebaCorreo',              --Nombre del Perfil creado
@recipients = 'mlamarche08@outlook.com',     --Correo del destinatario
@subject = 'Porbando',                       --Tema
@body = 'Probando Email',                    --Cuerpo del correo
@body_format = 'text'                        --Formato a usar

En caso que quieran revisar ellog de los correos con errores pueden utilizar  esta consulta :
 SELECT * FROM sysmail_event_log;
 go
 SELECT * FROM sysmail_unsentitems

Con esta consulta pueden ver los correos enviados :
 select *
 from sysmail_sentitems

Para ver los perfiles creados :
 select *
 from sysmail_account

Existen otras tablas pero con estas podemos empezar a trabajar. Hasta el próximo articulo!!

Comentarios

Entradas populares de este blog

SQL SERVER : Obtener Objeto Última Fecha de modificación de una tabla

MetroFramework : Aplicaciones de escritorio al estilo metro

Que es LOCALDB?