Ir al contenido principal

Database Mail en MS SQL Server 2005

Configuración de Database Mail en MS SQL Server 2005

Primero se debe de habilitar, ya que por omisión el componente esta deshabilitado, Utilizando el SSMS (SQL Server Management Studio)


Si no esta habilitado aparecerá un mensaje preguntado si lo habilita, después aparece esta ventana donde se pregunta al usuario que es lo desea hacer.


Seleccionamos la primera opción para crear un perfil.


Configuramos el perfil y le agregamos por lo menos una cuenta.


Seleccionamos el perfil como public y default.


Para mandar correo se utiliza el procedimiento msdb.sp_send_dbmail por lo tanto el usuario que intente mandar correo debe de tener permiso para la base de datos msdb.

Referencias:
http://www.sqlservercentral.com/columnists/cBunch/introtodatabasemailinsql2005.asp

Comentarios

  1. una pregunta, este servicio de db mail funciona en sql server 20005 Express edition?

    gracias.

    ResponderBorrar
  2. @Jony
    No estoy seguro, yo lo probé en la versión developer y enterprise.

    No tengo a la mano la versión express para probarlo. Si lo intentas me avisas como te fue ;)

    ResponderBorrar
  3. Donde se habilita? no encuentro como habilitarla :(

    ResponderBorrar
  4. aquí puedes encontrar mas información

    ResponderBorrar
  5. Mario, tengo un problema al envar os mail con sp_send_dbmail sobre SQL Server 2005 Developer.

    1. Ya configure el profile y la cuenta que realizara el envio, tanto con una cuenta prvada como con una de gmail.

    2. Al envia el mail con el siguiente comando:

    USE msdb
    GO
    EXEC sp_send_dbmail @profile_name='EnviarMail',
    @recipients='rcmimail@gmail.com',
    @subject='Test message',
    @body='This is the body of the test message.
    Congrates Database Mail Received By you Successfully.'

    sale el siguiente mensaje en el log

    Message
    The mail could not be sent to the recipients because of the mail server failure. (Sending Mail using Account 2 (2009-11-23T22:40:40). Exception Message: Cannot send mails to mail server. (The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.5.1 Authentication Required. Learn more at

    H seguido varios blog pero no ubico el problema, hay comentarios de personas que han sguido los paso y si les salio bien.

    Gracias por la ayuda.

    ResponderBorrar
  6. @Roberto por el mensaje de error parece mas un problema de permisos en el servidor de correo smtp, o puede ser que no esten configuradas bien las credenciales en los perfiles.
    aquí hay algunos links que te pueden ayudar.

    ResponderBorrar

Publicar un comentario

Entradas más populares de este blog

Bloqueos

Una de las preguntas típicas de las juntas matutinas en los equipos de desarrollo de software es ¿Hay algún bloqueo? Si lo hay, se trata de ver qué es lo que está esperando esa persona y encontrar la forma de que se desbloquee; pero ¿Qué son los bloqueos? Los bloqueos son obstáculos que te impiden realizar o avanzar en tu trabajo. Evitan que puedas seguir progresando en el proyecto.

He notado que es común en las personas con menos experiencia decir que tienen un bloqueo cuando están batallando, debido a su poca experiencia, en la forma de resolver un problema. Han intentado varias formas y se empiezan a quedar sin ideas de como puede ser resuelto el problema o como pueden cumplir con el requerimiento especificado. Al quedarse sin opciones de qué intentar dicen que tienen un bloqueo con la tarea y que a menos que alguien les diga como resolverlo, no se puede avanzar en la tarea.

En personas con más experiencia, ese tipo de bloqueos no ocurren, una persona con experiencia ha visto pro…

Firebird 2.1 UPDATE OR INSERT

Another great feature that I like in Firebird 2.1 is the UPDATE OR INSERT statement. It's a really time saver and it makes the SQL cleaner.

For example suppose I have a products table like the one I use in my last post and an inventory table to store the product stock. Before Firebird 2.1 if I want to set the stock for a product I needed to check if a record for that product_id already exists; if the product_id already exists then I write an update. If not then I write an insert statement. So I ended up with something like this:


IF EXISTS(SELECT * FROM inventory WHERE product_id = :product_id ) THEN
UPDATE
inventory
SET
stock = :stock
WHERE
product_id = :product_id;
ELSE
INSERT INTO inventory
(product_id, stock)
VALUES
(:product_id, :stock);

In this example I only update one field but when I have to update a big table I ended up with a big chunk of code and thinking: "there should be another (better) way to do this".

Fortunately now with Firebird 2.1 there…