Sistema de avisos

12/09/2003 - 09:26 por MARCOS | Informe spam
Hola compañeros, haber si alguien me puede echar una mano. Tengo una tabla
de morosos y quiero que cuando el total de lo que deben, supere una cierta
cantidad se active un sistema de aviso (Correo eléctronico al responsable
informandole de la cantidad que actualmente acumulan dichos morosos),
adjuntando en dicho correo un archivo con la consulta de identificación de
morosos que se defina (a ser posible en un archivo excel) .

He definido un SP que comprueba la cantidad acumulada de los morosos; Si
esta cantidad es mayor que una previamente establecida genera una senetencia
select para identificar a estos.Pero aqui me quedo.
Había pensado generar una tabla temporal con diha identificación.

He intentado utilizar el SQL mail y no he podido configurarlo bien.

Que me recomendais alguien tiene algo parecido.
Gracias de Antemano

Preguntas similare

Leer las respuestas

#1 Gerardo Prieto
12/09/2003 - 13:18 | Informe spam
Lo primero que tienes que hacer es configurar bien el SQL Mail para lo cual
no te puedo ayudar, una vez hecho, cambia ese procedimiento almacenado por
un Diparador (Trigger) para que cada vez que insertes un registro mire a ver
si tiene que manda ese mail.

Espero haberte ayudado...


"MARCOS" escribió en el mensaje
news:
Hola compañeros, haber si alguien me puede echar una mano. Tengo una tabla
de morosos y quiero que cuando el total de lo que deben, supere una cierta
cantidad se active un sistema de aviso (Correo eléctronico al responsable
informandole de la cantidad que actualmente acumulan dichos morosos),
adjuntando en dicho correo un archivo con la consulta de identificación de
morosos que se defina (a ser posible en un archivo excel) .

He definido un SP que comprueba la cantidad acumulada de los morosos; Si
esta cantidad es mayor que una previamente establecida genera una


senetencia
select para identificar a estos.Pero aqui me quedo.
Había pensado generar una tabla temporal con diha identificación.

He intentado utilizar el SQL mail y no he podido configurarlo bien.

Que me recomendais alguien tiene algo parecido.
Gracias de Antemano


Respuesta Responder a este mensaje
#2 Miguel Egea
12/09/2003 - 13:38 | Informe spam
Hola marcos, hay documentación variada sobre sqlmail en la web de microsoft,
en cualquier caso hay un sp extendido gratuito que envia correo pop3 y es
muy sencillo y pesa poco. Esto está desarrollado por Gert Drappers ni más ni
menos.
http://www.sqldev.net

Después puedes usar un trigger para invocar esta llamada y a funcionar.

Saludos Cordiales
=Proxima reunión virtual sobre rendimiento
Viernes 12 de Septiembre de 2003, 19:30 hora española.
18:30 hora GMT.
A través del canal #sqlserver del irc hispano

Miguel Egea
http://www.portalsql.com
Microsoft SQL-SERVER MVP.

¡Cuida el rendimiento! Evita los cursores
Brigada Anti-Cursores
==

"MARCOS" escribió en el mensaje
news:
Hola compañeros, haber si alguien me puede echar una mano. Tengo una tabla
de morosos y quiero que cuando el total de lo que deben, supere una cierta
cantidad se active un sistema de aviso (Correo eléctronico al responsable
informandole de la cantidad que actualmente acumulan dichos morosos),
adjuntando en dicho correo un archivo con la consulta de identificación de
morosos que se defina (a ser posible en un archivo excel) .

He definido un SP que comprueba la cantidad acumulada de los morosos; Si
esta cantidad es mayor que una previamente establecida genera una


senetencia
select para identificar a estos.Pero aqui me quedo.
Había pensado generar una tabla temporal con diha identificación.

He intentado utilizar el SQL mail y no he podido configurarlo bien.

Que me recomendais alguien tiene algo parecido.
Gracias de Antemano


Respuesta Responder a este mensaje
#3 Carlos Sacristán \(en casa\)
12/09/2003 - 13:42 | Informe spam
Creo que lo más sencillo (más incluso que SQL Mail) es utilizar un
procedimiento almacenado extendido de un tercero que funciona realmente
bien. Lo único que necesitas es un servidor smtp y listo... Echa un vistazo
a esta página:

http://www.sqldev.net/xp/xpsmtp.htm

"MARCOS" escribió en el mensaje
news:
Hola compañeros, haber si alguien me puede echar una mano. Tengo una tabla
de morosos y quiero que cuando el total de lo que deben, supere una cierta
cantidad se active un sistema de aviso (Correo eléctronico al responsable
informandole de la cantidad que actualmente acumulan dichos morosos),
adjuntando en dicho correo un archivo con la consulta de identificación de
morosos que se defina (a ser posible en un archivo excel) .

He definido un SP que comprueba la cantidad acumulada de los morosos; Si
esta cantidad es mayor que una previamente establecida genera una


senetencia
select para identificar a estos.Pero aqui me quedo.
Había pensado generar una tabla temporal con diha identificación.

He intentado utilizar el SQL mail y no he podido configurarlo bien.

Que me recomendais alguien tiene algo parecido.
Gracias de Antemano


Respuesta Responder a este mensaje
#4 carlos augusto
12/09/2003 - 16:57 | Informe spam
Hola, no es necesario (ni recomendable configurar el
servicio SQL mail, recomiendo revise este documento:


CÓMO: Enviar mensajes de correo electrónico sin utilizar
SQL Mail en SQL Server
La información de este artículo se refiere a:
· Microsoft SQL Server 2000 (todas las ediciones)
· Microsoft SQL Server 7.0
Este artículo se publicó anteriormente con el número
E312839
EN ESTA TAREA
· RESUMEN
· Cómo utilizar CDO para NT Server (CDONTS)
Configurar el host inteligente Crear un procedimiento
almacenado para enviar correo CDONTS
Cómo utilizar CDO para Windows 2000 (CDOSYS)
Crear un procedimiento almacenado para enviar correo
CDOSYS
· REFERENCIAS
Resumen
SQL Mail proporciona una manera sencilla de enviar y leer
correo electrónico desde SQL Server.
Sin embargo, dado que SQL Mail es una Interfaz de
programación de aplicaciones
de mensajería (MAPI), en el servidor debe estar presente
un subsistema MAPI.
Microsoft Windows 2000 no proporciona un subsistema MAPI
(Microsoft Windows NT 4.0
instala un subsistema MAPI cuando se instala Mensajería de
Windows). Por consiguiente,
para usar SQL Mail, debe instalar un cliente MAPI como
Microsoft Outlook.

Se pueden usar otros métodos para enviar correo
electrónico de Protocolo simple de
transferencia de correo (SMTP) directamente desde SQL
Server, como Objetos de datos
de colaboración para NT Server (CDONTS) u Objetos de datos
de Colaboración para Windows 2000
(CDOSYS) en combinación con procedimientos almacenados de
automatización OLE de SQL Server
sp_OA. En este artículo se proporciona un ejemplo de cómo
usar las técnicas
anteriores para enviar correo electrónico a un servidor de
correo de Internet.
Puede desarrollar más la técnica para proporcionar un
sistema de envío de correo más eficaz.
Por ejemplo, puede desear agregar código de tratamiento de
errores. Los métodos del ejemplo no
proporcionan un medio para leer o procesar correo
electrónico.

NOTA: estos ejemplos de programación ilustran una técnica
que se puede utilizar para invocar
el modelo de objetos CDO desde Transact-SQL. Usted es
responsable de cualquier extensión de los ejemplos
o de cualquier prueba de esfuerzo necesaria para ejecutar
el código en un entorno de producción.

Microsoft proporciona ejemplos de programación con fines
ilustrativos únicamente, sin ninguna garantía tanto
expresa como implícita, incluyendo, pero sin limitarse a,
las garantías implícitas de comerciabilidad e idoneidad
para un fin determinado. En este artículo se da por
supuesto que ya conoce el lenguaje de programación que se
muestra así como las herramientas empleadas para crear y
depurar procedimientos. Los profesionales de soporte
técnico de Microsoft pueden explicarle la funcionalidad de
un determinado procedimiento, pero no modificarán estos
ejemplos para ofrecer mayor funcionalidad ni crearán
procedimientos adaptados a sus necesidades específicas. Si
tiene poca experiencia en programación, quizá desee
ponerse en contacto con un Microsoft Certified Solution o
con la línea del servicio de consultoría que ofrece,
mediante pago, llamando al Centro de Atención al Cliente
de Microsoft en el número 902 197 198. Para obtener más
información acerca de los Certified Partners, consulte la
siguiente página en World Wide Web:
http://www.microsoft.com/spain/mscp/
Para obtener más información acerca de las opciones de
soporte técnico de Microsoft, consulte la siguiente página
en World Wide Web:
http://www.microsoft.com/Spain/supp.../default.h
tm
NOTA: los nombres de ejemplo de compañías, organizaciones,
productos, nombres de dominio,
direcciones de correo electrónico, logotipos, personas,
lugares y acontecimientos
aquí descritos son ficticios. No se pretende indicar ni
debe deducirse ninguna asociación con
compañías, organizaciones, productos, nombres de dominio,
direcciones de correo electrónico,
logotipos, personas, lugares o acontecimientos reales.
Cómo utilizar CDO para NT Server (CDONTS)
CDONTS es un servidor OLE específico del Protocolo simple
de transferencia de correo (SMTP) especialmente
diseñado para proporcionar funcionalidad de mensajería a
aplicaciones basadas en Web.
Como tal, CDONTS permite el envío de correo electrónico
basado en HTML, a diferencia de
las aplicaciones basadas en MAPI, como por ejemplo SQL
Mail. De manera predeterminada,
los Servicios de Microsoft Internet Information Server
(IIS) 4.0, o versiones posteriores,
instalan CDONTS. Del mismo modo, de manera predeterminada,
Microsoft Windows 2000
instala los Servicios de Microsoft Internet Information
Server (IIS) 5.0.

Para obtener información adicional acerca de CDONTS, haga
clic en el número de artículo siguiente para verlo en
Microsoft Knowledge Base:
177850 INFO: What is the Difference Between CDO 1.2 and
CDONTS?
CDONTS envía correo electrónico mediante SMTP al servidor
local. Si no dispone de un servidor SMTP
en el servidor local, puede usar el servidor virtual SMTP
que IIS instala para dirigir el correo
electrónico SMTP al servidor de correo SMTP adecuado. Si
desea utilizar CDONTS para enviar correo
electrónico desde SQL Server, siga los pasos descritos a
continuación:
· Instale y ejecute IIS en el equipo con SQL Server.
· Designe su servidor de correo SMTP como "host
inteligente" para que el Servicio SMTP de IIS
dirija automáticamente cualquier mensaje de correo
electrónico SMTP enviado a su servidor
local hacia su servidor de correo SMTP para su entrega.
· Cree un procedimiento almacenado en SQL Server que
pueda utilizar para enviar correo electrónico.
Cuando se utiliza CDONTS en lugar de SQL Mail, no es
necesario tener un cliente de correo como
Microsoft Outlook instalado en el equipo con SQL Server,
ni tampoco un servidor de
Microsoft Exchange. Se puede utilizar como "host
inteligente" cualquier servidor de correo
compatible con correo electrónico SMTP. Sin embargo, no
puede leer ni procesar el correo electrónico
enviado a su servidor SQL Server utilizando CDONTS.
Tampoco puede reemplazar la funcionalidad de SQL Agent
Mail.

Las instrucciones siguientes están concebidas para
Microsoft Windows 2000. Si IIS 4.0 está instalado en
el equipo, puede configurar Microsoft Windows NT 4.0 del
mismo modo; sin embargo, los pasos
diferirán ligeramente.

Para obtener información adicional acerca de cómo
configurar el host inteligente en Windows NT 4.0, haga
clic en el número de artículo siguiente para verlo en
Microsoft Knowledge Base:
230235 XCON: How to Configure the IIS SMTP Service to
Relay SMTP Mail
Configurar el host inteligente
· En la Barra de tareas, haga clic en Inicio, vaya a
Programas, a Herramientas administrativas y,
a continuación, haga clic en Administrador de servicios
Internet para abrir el
Administrador de IIS.
· Abra el árbol correspondiente a su servidor. Haga
clic con el botón secundario del mouse (ratón) en
el nodo Servidor virtual SMTP predeterminado y, a
continuación, haga clic en Propiedades.
· Vaya a la ficha Entrega y, a continuación, haga
clic en Avanzadas.
· Indique el servidor de correo SMTP en el cuadro de
texto Host inteligente.
(Póngase en contacto con el administrador de correo si no
conoce el nombre del servidor de correo SMTP.)
· Asegúrese de que se está ejecutando el servicio
Protocolo simple de transferencia de
correo (SMTP). El servicio SMTP es parte del servicio de
administración de IIS, por lo que este
segundo también se debe estar ejecutando.
Crear un procedimiento almacenado para enviar correo
CDONTS
Se puede utilizar código similar al siguiente para crear
un procedimiento almacenado en la
base de datos principal con el fin de enviar correo
electrónico utilizando procedimientos
almacenados de automatización OLE de SQL Server para
invocar el modelo de objetos CDONTS:
CREATE PROCEDURE [dbo].[sp_send_cdontsmail]
@From varchar(100),
@To varchar(100),
@Subject varchar(100),
@Body varchar(4000),
@CC varchar(100) = null,
@BCC varchar(100) = null
AS
Declare @MailID int
Declare @hr int
EXEC @hr = sp_OACreate 'CDONTS.NewMail', @MailID OUT
EXEC @hr = sp_OASetProperty @MailID, 'From',@From
EXEC @hr = sp_OASetProperty @MailID, 'Body', @Body
EXEC @hr = sp_OASetProperty @MailID, 'BCC',@BCC
EXEC @hr = sp_OASetProperty @MailID, 'CC', @CC
EXEC @hr = sp_OASetProperty @MailID, 'Subject', @Subject
EXEC @hr = sp_OASetProperty @MailID, 'To', @To
EXEC @hr = sp_OAMethod @MailID, 'Send', NULL
EXEC @hr = sp_OADestroy @MailID
A continuación, utilice el procedimiento almacenado y
proporcione los parámetros correctos:
exec
sp_send_cdontsmail '','
oft.com','Test of CDONTS','It works'
, CDONTS envía el correo electrónico al servidor virtual
SMTP local que a su vez lo dirige al servidor de
correo SMTP especificado en el cuadro de texto Host
inteligente. El servidor de correo SMTP envía
el correo a la dirección especificada en el argumento
Para: ("" en el ejemplo).
El nombre especificado en el argumento De: aparece como
remitente del correo electrónico (""
en este ejemplo) con el título "Prueba de CDONTS" y el
mensaje "Funciona" como el cuerpo del correo. No se
incluye
en la copia del mensaje a nadie, ya que no se proporcionó
ningún argumento para los campos CC y CCO.

El ejemplo se puede desarrollar más, para que envíe correo
electrónico basado en HTML o datos adjuntos.
Para obtener documentación acerca de CDONTS, consulte el
siguiente sitio Web:

MSDN Library

En el panel izquierdo, haga clic para expandir
Colaboración y mensajería, luego
Objetos de datos de colaboración y finalmente CDO 1.2.1.

Puede encontrar documentación referente a los
procedimientos almacenados de automatización OLE de
SQL Server en los Libros en pantalla de Microsoft SQL
Server 2000.

volver al principio
Cómo utilizar CDO para Windows 2000 (CDOSYS)
CDOSYS proporciona un modelo de objetos para el desarrollo
de aplicaciones de mensajería en
Microsoft Windows 2000 y facilita funcionalidad mejorada
mediante la biblioteca de CDO
para Windows NT Server (CDONTS). CDOSYS requiere Windows
2000 y un servidor SMTP local o remoto.
Puede configurar CDOSYS para que mediante programación
señale a servidores SMTP para que proporcione
flexibilidad a los programadores a la hora de configurar
servidores SMTP.

Para obtener información adicional acerca de CDOSYS, haga
clic en el número de artículo siguiente para verlo en
Microsoft Knowledge Base:
195683 INFO: Relationship between 1.x CDO Libraries and
CDOSYS.DLL
Dado que CDOSYS puede enviar correo electrónico a un
servidor SMTP remoto, CDOSYS no le exige que
tenga los Servicios de Internet Information Server
instalados y ejecutándose en el equipo con SQL Server.
Ni tampoco deberá configurar el servidor virtual SMTP.
Todo lo que tiene que hacer es crear un
procedimiento almacenado en SQL Server, que pueda utilizar
para enviar correo electrónico.

Cuando se utiliza CDOSYS en lugar de SQL Mail, no es
necesario tener un cliente de correo, como
Microsoft Outlook, instalado en el equipo con SQL Server.
Tampoco es necesario tener un servidor Exchange.
Se puede usar cualquier servidor de correo que admita
correo SMTP como servidor de correo SMTP remoto.
Sin embargo, no podrá leer ni procesar el correo
electrónico enviado a su servidor SQL Server si
utiliza CDOSYS. Tampoco podrá reemplazar la funcionalidad
de SQL Agent Mail.

El uso de CDOSYS con el objeto de automatización OLE de
SQL se basa en la automatización OLE de
SQL Server para invocar el modelo de objetos CDOSYS y ha
sido probado con el Service Pack 1 (SP1)
de SQL Server 2000 y el Service Pack 2 (SP2) de SQL Server
2000. Microsoft no garantiza que se pueda
llamar a CDOSYS desde los procedimientos almacenados de
automatización OLE, en versiones de SQL Server
anteriores al SP1 de SQL Server 2000.
Crear un procedimiento almacenado para enviar correo
CDOSYS
Se puede utilizar código similar al siguiente para crear
un procedimiento almacenado en la
base de datos principal con el fin de enviar correo
electrónico utilizando procedimientos
almacenados de automatización OLE de SQL Server para
invocar el modelo de objetos CDOSYS:
CREATE PROCEDURE [dbo].[sp_send_cdosysmail]
@From varchar(100) ,
@To varchar(100) ,
@Subject varchar(100)=" ",
@Body varchar(4000) =" "
/**********************************************************
***********

This stored procedure takes the above parameters and sends
an e-mail.
All of the mail configurations are hard-coded in the
stored procedure.
Comments are added to the stored procedure where necessary.
Reference to the CDOSYS objects are at the following MSDN
Web site:
http://msdn.microsoft.com/library/default.asp?
url=/library/en-us/cdosys/html/_cdosys_messaging.asp

***********************************************************
************/
AS
Declare @iMsg int
Declare @hr int
Declare @source varchar(255)
Declare @description varchar(500)
Declare @output varchar(1000)

************************
EXEC @hr = sp_OACreate 'CDO.Message', @iMsg OUT

******************
url=/library/en-us/cdosys/html/
_cdosys_schema_configuration_sendusing.asp
EXEC @hr = sp_OASetProperty @iMsg, 'Configuration.fields("
http://schemas.microsoft.com/cdo/co...sing").
Value','2'
Server.
EXEC @hr = sp_OASetProperty @iMsg, 'Configuration.fields("
http://schemas.microsoft.com/cdo/co...rver")
.Value', 'MailServerName'

EXEC @hr = sp_OAMethod
@iMsg, 'Configuration.Fields.Update', null

EXEC @hr = sp_OASetProperty @iMsg, 'To', @To
EXEC @hr = sp_OASetProperty @iMsg, 'From', @From
EXEC @hr = sp_OASetProperty @iMsg, 'Subject', @Subject

of 'TextBody'.
EXEC @hr = sp_OASetProperty @iMsg, 'TextBody', @Body
EXEC @hr = sp_OAMethod @iMsg, 'Send', NULL

IF @hr <>0
select @hr
BEGIN
EXEC @hr = sp_OAGetErrorInfo NULL, @source OUT,
@description OUT
IF @hr = 0
BEGIN
SELECT @output = ' Source: ' + @source
PRINT @output
SELECT @output = ' Description: ' + @description
PRINT @output
END
ELSE
BEGIN
PRINT ' sp_OAGetErrorInfo failed.'
RETURN
END
END

EXEC @hr = sp_OADestroy @iMsg
go
A continuación, utilice el procedimiento almacenado creado
y proporcione los parámetros adecuados:
declare @Body varchar(4000)
select @Body = 'This is a Test Message'
exec
sp_send_cdosysmail '','
oft.com','Test of CDOSYS',@Body
CDOSYS envía el correo electrónico al servidor de correo
SMTP remoto especificado como
cdoSMTPServerName.

El servidor de correo SMTP envía el correo a la dirección
especificada en el argumento Para:
("" en este ejemplo). El nombre
especificado en el argumento De:
aparece como remitente del mensaje de correo
("" en este ejemplo) con el
título "Prueba de CDOSYS" y el mensaje de correo con
formato HTML contenido en la variable @sHTML.

El ejemplo se puede desarrollar incluso más para que envíe
correo electrónico basado en texto o
datos adjuntos. Para obtener documentación acerca de
CDOSYS, consulte el siguiente sitio Web:

MSDN Library

En el panel izquierdo, haga clic para expandir
Colaboración y mensajería, luego
Objetos de datos de colaboración y finalmente CDO para
Windows 2000.

o talvez entrar a microsoft.com y pregunta como enviar
correo sin configurar sql mail


Cordial Saludo,

Carlos Augusto
Bogotá Colombia




Hola compañeros, haber si alguien me puede echar una


mano. Tengo una tabla
de morosos y quiero que cuando el total de lo que deben,


supere una cierta
cantidad se active un sistema de aviso (Correo


eléctronico al responsable
informandole de la cantidad que actualmente acumulan


dichos morosos),
adjuntando en dicho correo un archivo con la consulta de


identificación de
morosos que se defina (a ser posible en un archivo


excel) .

He definido un SP que comprueba la cantidad acumulada de


los morosos; Si
esta cantidad es mayor que una previamente establecida


genera una senetencia
select para identificar a estos.Pero aqui me quedo.
Había pensado generar una tabla temporal con diha


identificación.

He intentado utilizar el SQL mail y no he podido


configurarlo bien.

Que me recomendais alguien tiene algo parecido.
Gracias de Antemano


.

Respuesta Responder a este mensaje
#5 MARCOS
15/09/2003 - 10:25 | Informe spam
Gracias a Todos por vuestra ayuda, estoy deseando probar vuestras
respuestas, este es
el mejor grupo de noticias que existe.

"carlos augusto" escribió en el mensaje
news:26de01c3793e$2020f570$
Hola, no es necesario (ni recomendable configurar el
servicio SQL mail, recomiendo revise este documento:


CÓMO: Enviar mensajes de correo electrónico sin utilizar
SQL Mail en SQL Server
La información de este artículo se refiere a:
· Microsoft SQL Server 2000 (todas las ediciones)
· Microsoft SQL Server 7.0
Este artículo se publicó anteriormente con el número
E312839
EN ESTA TAREA
· RESUMEN
· Cómo utilizar CDO para NT Server (CDONTS)
Configurar el host inteligente Crear un procedimiento
almacenado para enviar correo CDONTS
Cómo utilizar CDO para Windows 2000 (CDOSYS)
Crear un procedimiento almacenado para enviar correo
CDOSYS
· REFERENCIAS
Resumen
SQL Mail proporciona una manera sencilla de enviar y leer
correo electrónico desde SQL Server.
Sin embargo, dado que SQL Mail es una Interfaz de
programación de aplicaciones
de mensajería (MAPI), en el servidor debe estar presente
un subsistema MAPI.
Microsoft Windows 2000 no proporciona un subsistema MAPI
(Microsoft Windows NT 4.0
instala un subsistema MAPI cuando se instala Mensajería de
Windows). Por consiguiente,
para usar SQL Mail, debe instalar un cliente MAPI como
Microsoft Outlook.

Se pueden usar otros métodos para enviar correo
electrónico de Protocolo simple de
transferencia de correo (SMTP) directamente desde SQL
Server, como Objetos de datos
de colaboración para NT Server (CDONTS) u Objetos de datos
de Colaboración para Windows 2000
(CDOSYS) en combinación con procedimientos almacenados de
automatización OLE de SQL Server
sp_OA. En este artículo se proporciona un ejemplo de cómo
usar las técnicas
anteriores para enviar correo electrónico a un servidor de
correo de Internet.
Puede desarrollar más la técnica para proporcionar un
sistema de envío de correo más eficaz.
Por ejemplo, puede desear agregar código de tratamiento de
errores. Los métodos del ejemplo no
proporcionan un medio para leer o procesar correo
electrónico.

NOTA: estos ejemplos de programación ilustran una técnica
que se puede utilizar para invocar
el modelo de objetos CDO desde Transact-SQL. Usted es
responsable de cualquier extensión de los ejemplos
o de cualquier prueba de esfuerzo necesaria para ejecutar
el código en un entorno de producción.

Microsoft proporciona ejemplos de programación con fines
ilustrativos únicamente, sin ninguna garantía tanto
expresa como implícita, incluyendo, pero sin limitarse a,
las garantías implícitas de comerciabilidad e idoneidad
para un fin determinado. En este artículo se da por
supuesto que ya conoce el lenguaje de programación que se
muestra así como las herramientas empleadas para crear y
depurar procedimientos. Los profesionales de soporte
técnico de Microsoft pueden explicarle la funcionalidad de
un determinado procedimiento, pero no modificarán estos
ejemplos para ofrecer mayor funcionalidad ni crearán
procedimientos adaptados a sus necesidades específicas. Si
tiene poca experiencia en programación, quizá desee
ponerse en contacto con un Microsoft Certified Solution o
con la línea del servicio de consultoría que ofrece,
mediante pago, llamando al Centro de Atención al Cliente
de Microsoft en el número 902 197 198. Para obtener más
información acerca de los Certified Partners, consulte la
siguiente página en World Wide Web:
http://www.microsoft.com/spain/mscp/
Para obtener más información acerca de las opciones de
soporte técnico de Microsoft, consulte la siguiente página
en World Wide Web:
http://www.microsoft.com/Spain/supp.../default.h
tm
NOTA: los nombres de ejemplo de compañías, organizaciones,
productos, nombres de dominio,
direcciones de correo electrónico, logotipos, personas,
lugares y acontecimientos
aquí descritos son ficticios. No se pretende indicar ni
debe deducirse ninguna asociación con
compañías, organizaciones, productos, nombres de dominio,
direcciones de correo electrónico,
logotipos, personas, lugares o acontecimientos reales.
Cómo utilizar CDO para NT Server (CDONTS)
CDONTS es un servidor OLE específico del Protocolo simple
de transferencia de correo (SMTP) especialmente
diseñado para proporcionar funcionalidad de mensajería a
aplicaciones basadas en Web.
Como tal, CDONTS permite el envío de correo electrónico
basado en HTML, a diferencia de
las aplicaciones basadas en MAPI, como por ejemplo SQL
Mail. De manera predeterminada,
los Servicios de Microsoft Internet Information Server
(IIS) 4.0, o versiones posteriores,
instalan CDONTS. Del mismo modo, de manera predeterminada,
Microsoft Windows 2000
instala los Servicios de Microsoft Internet Information
Server (IIS) 5.0.

Para obtener información adicional acerca de CDONTS, haga
clic en el número de artículo siguiente para verlo en
Microsoft Knowledge Base:
177850 INFO: What is the Difference Between CDO 1.2 and
CDONTS?
CDONTS envía correo electrónico mediante SMTP al servidor
local. Si no dispone de un servidor SMTP
en el servidor local, puede usar el servidor virtual SMTP
que IIS instala para dirigir el correo
electrónico SMTP al servidor de correo SMTP adecuado. Si
desea utilizar CDONTS para enviar correo
electrónico desde SQL Server, siga los pasos descritos a
continuación:
· Instale y ejecute IIS en el equipo con SQL Server.
· Designe su servidor de correo SMTP como "host
inteligente" para que el Servicio SMTP de IIS
dirija automáticamente cualquier mensaje de correo
electrónico SMTP enviado a su servidor
local hacia su servidor de correo SMTP para su entrega.
· Cree un procedimiento almacenado en SQL Server que
pueda utilizar para enviar correo electrónico.
Cuando se utiliza CDONTS en lugar de SQL Mail, no es
necesario tener un cliente de correo como
Microsoft Outlook instalado en el equipo con SQL Server,
ni tampoco un servidor de
Microsoft Exchange. Se puede utilizar como "host
inteligente" cualquier servidor de correo
compatible con correo electrónico SMTP. Sin embargo, no
puede leer ni procesar el correo electrónico
enviado a su servidor SQL Server utilizando CDONTS.
Tampoco puede reemplazar la funcionalidad de SQL Agent
Mail.

Las instrucciones siguientes están concebidas para
Microsoft Windows 2000. Si IIS 4.0 está instalado en
el equipo, puede configurar Microsoft Windows NT 4.0 del
mismo modo; sin embargo, los pasos
diferirán ligeramente.

Para obtener información adicional acerca de cómo
configurar el host inteligente en Windows NT 4.0, haga
clic en el número de artículo siguiente para verlo en
Microsoft Knowledge Base:
230235 XCON: How to Configure the IIS SMTP Service to
Relay SMTP Mail
Configurar el host inteligente
· En la Barra de tareas, haga clic en Inicio, vaya a
Programas, a Herramientas administrativas y,
a continuación, haga clic en Administrador de servicios
Internet para abrir el
Administrador de IIS.
· Abra el árbol correspondiente a su servidor. Haga
clic con el botón secundario del mouse (ratón) en
el nodo Servidor virtual SMTP predeterminado y, a
continuación, haga clic en Propiedades.
· Vaya a la ficha Entrega y, a continuación, haga
clic en Avanzadas.
· Indique el servidor de correo SMTP en el cuadro de
texto Host inteligente.
(Póngase en contacto con el administrador de correo si no
conoce el nombre del servidor de correo SMTP.)
· Asegúrese de que se está ejecutando el servicio
Protocolo simple de transferencia de
correo (SMTP). El servicio SMTP es parte del servicio de
administración de IIS, por lo que este
segundo también se debe estar ejecutando.
Crear un procedimiento almacenado para enviar correo
CDONTS
Se puede utilizar código similar al siguiente para crear
un procedimiento almacenado en la
base de datos principal con el fin de enviar correo
electrónico utilizando procedimientos
almacenados de automatización OLE de SQL Server para
invocar el modelo de objetos CDONTS:
CREATE PROCEDURE [dbo].[sp_send_cdontsmail]
@From varchar(100),
@To varchar(100),
@Subject varchar(100),
@Body varchar(4000),
@CC varchar(100) = null,
@BCC varchar(100) = null
AS
Declare @MailID int
Declare @hr int
EXEC @hr = sp_OACreate 'CDONTS.NewMail', @MailID OUT
EXEC @hr = sp_OASetProperty @MailID, 'From',@From
EXEC @hr = sp_OASetProperty @MailID, 'Body', @Body
EXEC @hr = sp_OASetProperty @MailID, 'BCC',@BCC
EXEC @hr = sp_OASetProperty @MailID, 'CC', @CC
EXEC @hr = sp_OASetProperty @MailID, 'Subject', @Subject
EXEC @hr = sp_OASetProperty @MailID, 'To', @To
EXEC @hr = sp_OAMethod @MailID, 'Send', NULL
EXEC @hr = sp_OADestroy @MailID
A continuación, utilice el procedimiento almacenado y
proporcione los parámetros correctos:
exec
sp_send_cdontsmail '','
oft.com','Test of CDONTS','It works'
, CDONTS envía el correo electrónico al servidor virtual
SMTP local que a su vez lo dirige al servidor de
correo SMTP especificado en el cuadro de texto Host
inteligente. El servidor de correo SMTP envía
el correo a la dirección especificada en el argumento
Para: ("" en el ejemplo).
El nombre especificado en el argumento De: aparece como
remitente del correo electrónico (""
en este ejemplo) con el título "Prueba de CDONTS" y el
mensaje "Funciona" como el cuerpo del correo. No se
incluye
en la copia del mensaje a nadie, ya que no se proporcionó
ningún argumento para los campos CC y CCO.

El ejemplo se puede desarrollar más, para que envíe correo
electrónico basado en HTML o datos adjuntos.
Para obtener documentación acerca de CDONTS, consulte el
siguiente sitio Web:

MSDN Library

En el panel izquierdo, haga clic para expandir
Colaboración y mensajería, luego
Objetos de datos de colaboración y finalmente CDO 1.2.1.

Puede encontrar documentación referente a los
procedimientos almacenados de automatización OLE de
SQL Server en los Libros en pantalla de Microsoft SQL
Server 2000.

volver al principio
Cómo utilizar CDO para Windows 2000 (CDOSYS)
CDOSYS proporciona un modelo de objetos para el desarrollo
de aplicaciones de mensajería en
Microsoft Windows 2000 y facilita funcionalidad mejorada
mediante la biblioteca de CDO
para Windows NT Server (CDONTS). CDOSYS requiere Windows
2000 y un servidor SMTP local o remoto.
Puede configurar CDOSYS para que mediante programación
señale a servidores SMTP para que proporcione
flexibilidad a los programadores a la hora de configurar
servidores SMTP.

Para obtener información adicional acerca de CDOSYS, haga
clic en el número de artículo siguiente para verlo en
Microsoft Knowledge Base:
195683 INFO: Relationship between 1.x CDO Libraries and
CDOSYS.DLL
Dado que CDOSYS puede enviar correo electrónico a un
servidor SMTP remoto, CDOSYS no le exige que
tenga los Servicios de Internet Information Server
instalados y ejecutándose en el equipo con SQL Server.
Ni tampoco deberá configurar el servidor virtual SMTP.
Todo lo que tiene que hacer es crear un
procedimiento almacenado en SQL Server, que pueda utilizar
para enviar correo electrónico.

Cuando se utiliza CDOSYS en lugar de SQL Mail, no es
necesario tener un cliente de correo, como
Microsoft Outlook, instalado en el equipo con SQL Server.
Tampoco es necesario tener un servidor Exchange.
Se puede usar cualquier servidor de correo que admita
correo SMTP como servidor de correo SMTP remoto.
Sin embargo, no podrá leer ni procesar el correo
electrónico enviado a su servidor SQL Server si
utiliza CDOSYS. Tampoco podrá reemplazar la funcionalidad
de SQL Agent Mail.

El uso de CDOSYS con el objeto de automatización OLE de
SQL se basa en la automatización OLE de
SQL Server para invocar el modelo de objetos CDOSYS y ha
sido probado con el Service Pack 1 (SP1)
de SQL Server 2000 y el Service Pack 2 (SP2) de SQL Server
2000. Microsoft no garantiza que se pueda
llamar a CDOSYS desde los procedimientos almacenados de
automatización OLE, en versiones de SQL Server
anteriores al SP1 de SQL Server 2000.
Crear un procedimiento almacenado para enviar correo
CDOSYS
Se puede utilizar código similar al siguiente para crear
un procedimiento almacenado en la
base de datos principal con el fin de enviar correo
electrónico utilizando procedimientos
almacenados de automatización OLE de SQL Server para
invocar el modelo de objetos CDOSYS:
CREATE PROCEDURE [dbo].[sp_send_cdosysmail]
@From varchar(100) ,
@To varchar(100) ,
@Subject varchar(100)=" ",
@Body varchar(4000) =" "
/**********************************************************
***********

This stored procedure takes the above parameters and sends
an e-mail.
All of the mail configurations are hard-coded in the
stored procedure.
Comments are added to the stored procedure where necessary.
Reference to the CDOSYS objects are at the following MSDN
Web site:
http://msdn.microsoft.com/library/default.asp?
url=/library/en-us/cdosys/html/_cdosys_messaging.asp

***********************************************************
************/
AS
Declare @iMsg int
Declare @hr int
Declare @source varchar(255)
Declare @description varchar(500)
Declare @output varchar(1000)

************************
EXEC @hr = sp_OACreate 'CDO.Message', @iMsg OUT

******************
url=/library/en-us/cdosys/html/
_cdosys_schema_configuration_sendusing.asp
EXEC @hr = sp_OASetProperty @iMsg, 'Configuration.fields("
http://schemas.microsoft.com/cdo/co...sing").
Value','2'
Server.
EXEC @hr = sp_OASetProperty @iMsg, 'Configuration.fields("
http://schemas.microsoft.com/cdo/co...rver")
.Value', 'MailServerName'

EXEC @hr = sp_OAMethod
@iMsg, 'Configuration.Fields.Update', null

EXEC @hr = sp_OASetProperty @iMsg, 'To', @To
EXEC @hr = sp_OASetProperty @iMsg, 'From', @From
EXEC @hr = sp_OASetProperty @iMsg, 'Subject', @Subject

of 'TextBody'.
EXEC @hr = sp_OASetProperty @iMsg, 'TextBody', @Body
EXEC @hr = sp_OAMethod @iMsg, 'Send', NULL

IF @hr <>0
select @hr
BEGIN
EXEC @hr = sp_OAGetErrorInfo NULL, @source OUT,
@description OUT
IF @hr = 0
BEGIN
SELECT @output = ' Source: ' + @source
PRINT @output
SELECT @output = ' Description: ' + @description
PRINT @output
END
ELSE
BEGIN
PRINT ' sp_OAGetErrorInfo failed.'
RETURN
END
END

EXEC @hr = sp_OADestroy @iMsg
go
A continuación, utilice el procedimiento almacenado creado
y proporcione los parámetros adecuados:
declare @Body varchar(4000)
select @Body = 'This is a Test Message'
exec
sp_send_cdosysmail '','
oft.com','Test of CDOSYS',@Body
CDOSYS envía el correo electrónico al servidor de correo
SMTP remoto especificado como
cdoSMTPServerName.

El servidor de correo SMTP envía el correo a la dirección
especificada en el argumento Para:
("" en este ejemplo). El nombre
especificado en el argumento De:
aparece como remitente del mensaje de correo
("" en este ejemplo) con el
título "Prueba de CDOSYS" y el mensaje de correo con
formato HTML contenido en la variable @sHTML.

El ejemplo se puede desarrollar incluso más para que envíe
correo electrónico basado en texto o
datos adjuntos. Para obtener documentación acerca de
CDOSYS, consulte el siguiente sitio Web:

MSDN Library

En el panel izquierdo, haga clic para expandir
Colaboración y mensajería, luego
Objetos de datos de colaboración y finalmente CDO para
Windows 2000.

o talvez entrar a microsoft.com y pregunta como enviar
correo sin configurar sql mail


Cordial Saludo,

Carlos Augusto
Bogotá Colombia




Hola compañeros, haber si alguien me puede echar una


mano. Tengo una tabla
de morosos y quiero que cuando el total de lo que deben,


supere una cierta
cantidad se active un sistema de aviso (Correo


eléctronico al responsable
informandole de la cantidad que actualmente acumulan


dichos morosos),
adjuntando en dicho correo un archivo con la consulta de


identificación de
morosos que se defina (a ser posible en un archivo


excel) .

He definido un SP que comprueba la cantidad acumulada de


los morosos; Si
esta cantidad es mayor que una previamente establecida


genera una senetencia
select para identificar a estos.Pero aqui me quedo.
Había pensado generar una tabla temporal con diha


identificación.

He intentado utilizar el SQL mail y no he podido


configurarlo bien.

Que me recomendais alguien tiene algo parecido.
Gracias de Antemano


.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida