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


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!!!

    • Luis Angel
    • 20/02/09

    Felicitaciones por el articulo publicado, a mi me funcionó….
    Gracias

    • psykrest
    • 21/02/09

    Hola Luis ángel, me da gusto que te sirva el post, seguiré tratando de publicar cosas útiles para el desarrollo en MSQL.

    • Guillermo
    • 2/03/09

    Muchas gracias por la info, aplicare lo que has explicado y te cuento como me fue.

    Buen dia. =)

    • Drabraxus
    • 17/04/09

    Muy buena la informacion compartida, al igual que la 2da parte, me sirvio para automatizar mediante un sp mensajes de alerta… saludos y reitero las felicitaciones…

    • Helder Higuera
    • 14/05/09

    La información de este post esta muy completa y exacta, me funciono a la primera.

    • rob
    • 25/05/09

    yo no se que pasa pero a mi no me funciona :S sabes que me puede faltar

    • Ariel Benitez
    • 25/05/09

    hey muchas felicidades por este apartado, realmente esta muy interesante.
    estube haciendo esto en SQL 2000 pero solo me funciono con Ms Outlook y aparte necesita que Outlook se este ejecutando para que envie correos.
    esto sera de mucha utilidad. mil gracias.

    • psykrest
    • 26/05/09

    Hola Rob, con gusto te puedo ayudar, pero necesito una descripción de cuales son los errores o a donde tienes problemas, Saludos buen día.

    • psykrest
    • 26/05/09

    Saludos Ariel, te recomiendo utilizar la versión más actual de SQL Server “MS SqlServer 2008”, y empieces a realizar prácticas y demos, busca material en línea y sigue consultando mi blog, en las tecnologías de información debemos tratar de estar siempre actualizados, en este enlace podrás encontrar información y descargar una versión Express de SQL Server 2008, Suerte.

    http://www.mslatam.com/latam/estamosconlosheroes/SQL-1.aspx

    • Laura
    • 25/08/09

    Hola. Los felicito. Muy buen documento, muy claro, muy bien explicado y me funcionó.
    Lo que no puedo hacer funcinoar es setear un job para que me envíe un correo en caso que éste termine con éxito

    • Carolina
    • 5/09/09

    Excelente la explicación….. muchas Gracias.
    que gran aporte.
    Me funciono perfectamente

    • kelly
    • 9/06/10

    Excelente información, es concreta, precisa e interesante
    funciona muy bien!

    • Carlos Jimenez
    • 6/10/10

    Excelente articulo a mi me ayudo dem y me funciono a la perfecion!!!!!!
    pro favor si tinen informacion del proximo articulo de com mandar correo desde codigo mandenmen el link!!!!

    • Dayla Galindez
    • 29/01/11

    Este ejemplo pregunto me servira para enviar un e-mail cuando la fecha de vencimientos de pedidos este vencida. soy nueva en esto. acaso se prodra hacer un job o un stored procedure para ejecutar esta condicion. Necesito ayuda. Gracias anticipadas

  1. Excelente post! me funciona de maravilla, grx!!

    • Jorge Velasquez
    • 14/09/11

    Hola, necesito saber si alguien tiene la solucion para mensaje “No se pudo enviar el mensaje de correo a los destinatarios a causa de un error del servidor de correo.
    (Enviando mensaje de correo electrónico utilizando la cuenta 2 (2011-09-14T11:21:07). Mensaje de excepción:
    No se pueden enviar los mensajes de correo al servidor de correo. (El buzón de correo no está disponible.
    La respuesta del servidor fue: 5.7.1 Client does not have permissions to send as this sender). )”
    Tengo Windows server 2008 y SQL 2005 mas Office 2010.
    He buscado en internet y no puedo encontrar la solucion

    • Aldrin Ronco
    • 26/11/11

    Hola,

    Primero que todo muchas gracias por la información publicada.
    Me gustaria saber si alguien puede ayudarme con lo siguiente :
    He realizado los pasos hasta el punto donde tengo que ir a : Administración/Correo electronico de base de datos y hay que dar click derecho para que se despliegue el menú contextual; el problema que tengo es que en mi menú contextual solamente me aparecer la opción “Actualizar”, no se despliega ninguna otra, ya reinicié el PC despues de los primeros paso pero no ha funcionado, agradezco cualquier ayuda que puedan brindarme.

    • psykrest
    • 28/11/11

    Hola, tal vez el usuario con el que estas intentando hacer esto no tiene suficientes permisos, o la versión de SQL Server no soporta esta opción,
    ¿En que versión estas trabajando?, ¿Tu usuario es Administrador?, Saludos

    • Aldrin Ronco
    • 30/11/11

    Hola, Mi versión de SQL Server es la FULL, no es EXPRESS y estoy trabajando directamente con el sa (Administrador), ya he hecho de todo y creo que tengo los permisos necesarios, ya incluso estoy optando por hacer un programa aparte para realizar el envío de correos a pesar de que se que lo mas correcto para mi necesidad es que la base de datos realice esa tarea.

    • Aldrin Ronco
    • 30/11/11

    Se me olvidaba, trabajo con SQL SERVER 2005

  2. debo de activa el outlook para que funcione?

  3. necesito saber lo antes posible….si tienes una respuesta porfa contactame lucero_3217@hotmail.com

    • Corsario007
    • 12/01/12

    Excelente ayuda, tunciono todo Ok, muchisimas gracias

    • psykrest
    • 13/01/12

    No es necesario que este activado el outlook, lo que debes de tener funcionando a la perfección es la cuenta de correo con tu web hosting, de ahi en fuera lo demas en configuración del SQL, Saludos Ivan…

  4. Muchas gracias por compartir tu conocimiento, tengo una duda, es posible poder incorporar imagenes en el cuerpo del correo que se enta envíando por SQL?,
    Puede ir el cuerpo del correo con formato HTML y no como texto plano?

    Saludos y de antemano mil gracias.

    • elvis acevedo
    • 12/03/12

    como envio un correo electronico pero por el resultado de una consulta

    • Anita
    • 4/04/13

    Hice todos los pasos en una instancia de pruebas y funcionó correctamente. Ahora que lo quiero realizar
    en la instancia real no me funciona. Al enviar el mail de prueba me genera este registro:
    Exception Type: Microsoft.SqlServer.Management.SqlIMail.Server.Common.BaseException
    Message: No se puede leer la información de configuración de correo de la base de datos.
    Data: System.Collections.ListDictionaryInternal
    TargetSite: Microsoft.SqlServer.Management.SqlIMail.Server.Objects.Account GetAccount(Int32)
    HelpLink: NULL
    Source: DatabaseMailEngine
    StackTrace Information
    ===================
    en Microsoft.SqlServer.Management.SqlIMail.Server.DataAccess.DataAccessAdapter.GetAccount(Int32
    accountID)
    en
    Microsoft.SqlServer.Management.SqlIMail.Server.Controller.CommandFactory.CreateSendMailCommand
    (DBSession dbSession)
    en Microsoft.SqlServer.Management.SqlIMail.Server.Controller.CommandFactory.CreateCommand
    (DBSession dbSession)
    en Microsoft.SqlServer.Management.SqlIMail.Server.Controller.CommandRunner.Run(DBSession db)
    en Microsoft.SqlServer.Management.SqlIMail.IMailProcess.ThreadCallBack.MailOperation(Object o)
    Agradezco tu ayuda!

  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: