jueves, marzo 26, 2009

Enviando mail usando un script

Muchas veces me ha tocado configurar script que necesitan enviar mails e incluso atachar archivos al mismo, no es algo complicado y es facil de encontrar a traves de google, pero seguramente muchos no lo conocen y de seguro mas de alguien lo encontrara super practico :D

Como administradores es super util automatizar algunas tareas, los invito a visitar el Script Center de Microsoft donde encontraran este y muchos otros scripts muy utilies.

Este script usa CDO (Collaboration Data Objects), el codigo lo escribimos en un archivo de extension .vbs y lo ejecutamos usando el comando cscript.

cscript C:\Alertas\alerta.vbs

Veamos ahora como armar este mail y enviarlo.

Primero que nada creamos el objeto que usaremos para enviar el mail, para ello crearemos una instancia que llamaremos objEmail que sera un objeto CDO.Message.

Set objEmail = CreateObject("CDO.Message")

Cuando se envia un mail lo primero es indicar quien lo envia y a quien, esto se hace en los atributos From y To del objeto creado.

objEmail.From = "helpdesk@fabrikam.com"
objEmail.To = "administrator@fabrikam.com"


Por supuesto esto no basta, necesitamos agregarle el tema y por supuesto el contenido del mensaje.

objEmail.Subject = "Server down"
objEmail.Textbody = "Server1 is no longer accessible over the network."


Seguramente queremos tambien agregar algun archivo atachado a este mensaje.

objEmail.AddAttachment "C:\Scripts\Output.txt"

Ya tenemos nuestro mail, ahora hay que enviarlo, una de las formas es usando un smtp local (IIS), con lo cual no necesitamos agregar nada mas a nuestro script, aunque si debemos configurar el smtp para que reciba los mails y lo reenvie a donde corresponda, pero si deseamos usar nuestro servidor de correo que ya tenemos funcionando debemos agregar unas lineas mas.

objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "serversmtp"
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objEmail.Configuration.Fields.Update


Algunos servidores por seguridad piden autenticacion, si este es el caso otro par de lineas nos ayuda con esto.

objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername") = "fabrikam\kenmyer"
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "&gr54#wgha"


Y por ultimo, enviamos el mail

objEmail.Send

Y ya estamos listos para ejecutar nuestro script.

Saludos!

Isa

2 comentarios:

Unknown dijo...

Buenas tardes,al ejecutar el script sale error 80040213 "error de transporte en la conexión al servidor".
Puedes ayudarnos?

Vero Rmz dijo...

Me sale el mismo error....