COMO ENVIAR EMAILS DESDE EL SERVICIO DE REPORTES DE SQL SERVER EN MAQUINAS VIRTUALES AZURE

En este artículo vemos cómo configurar el re-envío de correos electrónicos desde el Servicio de Reportes de SQL Server (SSRS) implementado en máquinas virtuales Azure, utilizando el servicio gratuito SMTP de SendGrid.

Para realizar esta actividad necesitamos:

  • Una suscripción de Azure, aquí puede obtener una evaluación gratuita.
  • Una máquina virtual Azure con MS SQL Reporting Services (SSRS)
  • Una cuenta gratuita del servicio de e-mail SendGrid.

INTRODUCCION:

En Azure, dada la naturaleza virtual de las redes que hospedan máquinas virtuales, el uso de SMTP en las mismas está restringido, sería complicado e ineficiente tratar de usar un servidor SMTP desde dentro de la nube porque la mayoría de los servidores de email tienen problemas para comunicarse con las IP virtuales de los servicios de nube y además estos rangos de IP pueden ser y son fácilmente catalogados en listas negras y bloqueados por servidores de correo, debido al alto riesgo que presentan como generadores de spam. Tambien el hecho de que no existen por defecto registros de DNS de reversa, muchos servidores rechazarian la coneccion al servidor de email.

Imagínese que alguien use un servidor SMTP en una máquina virtual para enviar correos electrónicos spam. La dirección IP pública de la VM pierde su reputación en internet y es catalogada en listas negras. ¿Imagina lo que sucederá cuando más adelante la dirección IP pueda ser re-asignada a otros usuarios (MV u otros servicios)?

Dicho esto, es entendible que la capacidad de poder enviar emails desde la plataforma es algo fundamental para muchos sistemas y aplicaciones de negocios, por eso para poder hacerlo se recomienda utilizar un servicio de terceros como SendGrid. Al momento de crear este artículo, los clientes de Microsoft Azure pueden obtener este servicio gratuito hasta 25000 emails por mes (200 emails por día), SendGrid es un asociado de Azure certificado.

(Aquí están las instrucciones para abrir una cuenta SendGrid desde el portal de Azure, como y usarlo: https://azure.microsoft.com/es-es/documentation/articles/sendgrid-dotnet-how-to-send-email/ )

PROBLEMA CON SSRS:

Cuando usted intenta utilizar el servicio SendGrid con SSRS para envío de reportes agendados, se presenta el siguiente problema: el servicio de SendGrid solo acepta conexiones con autenticación requiriendo un usuario autorizado para re-enviar email con la cuenta de SendGrid y una contraseña, esto quiere decir que no podrá autenticarse anónimamente con SendGrid desde el servicio SSRS, y las opciones para especificar usuario y contraseña en SSRS no son compatibles con SendGrid. La buena noticia es que se puede utilizar el servidor SMTP en el servicio IIS del localhost de la máquina virtual para que haga el re-envío a través de SendGrid, ya que este tráfico entre Azure y SendGrid si está autorizado. Básicamente se configura SSRS para que utilice SMTP localhost, y luego configuramos el SMTP del localhost en IIS para que utilice un servidor de relay en el cual especificamos las configuraciones de SendGrid, luego este servicio se encarga del renvío al destinatario final.

IMG_0859

SOLUCION:

A. Configurar SSRS para utilizar el SMTP local del servidor:

  1. Inicie el Administrador de configuración de Reporting Services y conéctese a la instancia del servidor de Reportes.

2016-01-27_10-29-45

2.  En la página Configuración de correo electrónico, escriba el nombre del servidor SMTP local. Este valor puede ser la dirección IP, un nombre      UNC del equipo local o un nombre de dominio completo, del servidor que ejecuta el servicio SMTP.

3. En Dirección del remitente, escriba el nombre de una cuenta que tenga permiso para enviar correo electrónico desde el servidor SMTP.

 

B. Configure el servicio SMTP local (en IIS) para que utilice smarthost: smtp.sendgrid.net  y credenciales de un usuario autorizado de SendGrid.

  1. En el menú Herramientas Administrativas, abra el Internet Information Server (IIS) 6.0 Manager.

2016-01-27_10-37-20

2.  Si no tiene un servidor local SMTP configurado, haga clic en Action –> New –> SMTP Virtual Server.

3. En la ventana del administrador de IIS, haga clic en el servidor Virtual de SMTP predeterminado y seleccione Properties.

2016-01-27_10-40-11

4. Seleccione la pestaña Delivery

5. En la sección de Outbound Security, seleccione Basic authentication, e ingrese nombre de usuario y contraseña autorizado de SendGrid. Clic Ok.

2016-01-27_10-45-38

6. Haga clic en Advanced.

2016-01-27_10-48-16

7.  En el campo Smarthost, escriba servidor de retransmisión de correo electrónico SendGrid: smtp.sendgrid.net . Clic Ok.

8. En la pestaña Access, clic Relay… seleccione “Only the list below”, y asegúrese de agregar la IP y/o nombre del servidor local.

2016-01-27_10-51-35

9. Haga clic en aceptar y cierre IIS.

Ahora podrá crear suscripciones de email en SSRS para que sus usuarios reciban reportes vía email desde Azure.

Espero que esta informacion sea de ayuda, y por favor déjeme sus comentarios o sugerencias acerca de este artículo en la sección de mensajes abajo.

Leave a Reply