CODEX

Enviar correo desde SQL Express

Esta versión lo he probado en SQL Express 2012, por lo tanto debo suponer que en las versiones superiores se debería poder configurar
Change your parameter values accordingly

Hay que tener en cuenta que para esto se tiene que habilitar en gmail, permiter nivel bajo de seguridad, y deshabilitar verificado de 2 pasos.

Verificamos si hay algun profile ya existente


SELECT [sysmail_server].[account_id]
		,[sysmail_account].[name] AS [Account Name]
      ,[servertype]
      ,[servername] AS [SMTP Server Address]
      ,[Port]

  FROM [msdb].[dbo].[sysmail_server]
  INNER JOIN [msdb].[dbo].[sysmail_account]
  ON [sysmail_server].[account_id]=[sysmail_account].[account_id]

Es importante activar el servicio y reconfigurar el SQL Server


/*
Habilitamos el servicio de DatabaseMail dentro del SQL Server
*/
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'Database Mail XPs', 1;
GO
RECONFIGURE
GO

Y luego empezamos con la configuracion


/*
Change the parameters values as per your need.
*/
EXECUTE msdb.dbo.sysmail_add_account_sp
@account_name = 'MailTest',
@description = 'Sent Mail using SQL Server',
@email_address = 'Usar_cuenta_valida_de_gmail',
@display_name = 'SQL Server',
@username='Usar_cuenta_valida_de_gmail',
@password='clave_gmail',
@mailserver_name = 'smtp.gmail.com',
@port = 25,
@enable_ssl = 1;

/*
Change your parameter values accordingly
*/

EXECUTE msdb.dbo.sysmail_add_profile_sp
@profile_name = 'MailTest',
@description = 'Profile used to send mail'

/*
Change your parameter values accordingly
*/

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

/*
Change your parameter values accordingly
*/
EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
@profile_name = 'MailTest',
@principal_name = 'public',
@is_default = 1 ;

/* A principal_name of 'public' makes this profile a 
public profile, granting access to all principals in the database.
*/

exec msdb.dbo.sp_send_dbmail
@profile_name = 'MailTest',
@recipients = 'eli.fuentes@pichara.pe',
@subject = 'Mail Test 06',
@body = 'Mail Sent Successfully otro mail 01',
@body_format = 'text'


Y para estar seguro hay que revisar los LOG para detectar los errores

SELECT * FROM msdb.dbo.sysmail_event_log;