script por para necesarios medio linea enviar ejecutar desde correos correo comandos bat windows email scripting smtp wsh

por - Enviar correo desde una secuencia de comandos de Windows



script para enviar correo powershell (7)

Me gustaría enviar correos de una secuencia de comandos en una edición estándar de Windows Server 2003. Creo que la configuración del servidor está prácticamente fuera de la caja.

El servidor de correo es Exchange, y cuando estás en la red interna puedes usar el viejo y simple SMTP. Lo hice desde mi máquina con Perl, pero desafortunadamente Perl no está disponible en el servidor.

¿Existe una manera fácil de hacerlo desde un archivo .bat o de cualquier otra manera que no requiera la instalación de algún software adicional?

Edit:
Gracias por las respuestas rápidas. La cosa "blat" probablemente funcionaría bien, pero con wscript no tengo que usar un binario por separado.

No vi la publicación de PhiLho la primera vez que edité y seleccioné una respuesta. No necesito duplicar el código aquí.

Simplemente guarde la secuencia de comandos en un archivo, digamos sendmail.vbs, y luego llámelo desde el símbolo del sistema de la siguiente manera:
wscript sendmail.vbs


¿Hay alguna forma de enviar sin hacer referencia a las urls del esquema externo? http://schemas.microsoft.com/cdo/configuration/

Eso es muy inútil ya que no se puede suponer que todas las cajas tendrán acceso externo a Internet para enviar correo interno en la central local. ¿Hay alguna manera de guardar la información de esas urls localmente?



Es posible con Wscript, usando CDO:

Dim objMail Set objMail = CreateObject("CDO.Message") objMail.From = "Me <[email protected]>" objMail.To = "You <[email protected]>" objMail.Subject = "That''s a mail" objMail.Textbody = "Hello World" objMail.AddAttachment "C:/someFile.ext" ---8<----- You don''t need this part if you have an active Outlook [Express] account ----- '' Use an SMTP server objMail.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 '' Name or IP of Remote SMTP Server objMail.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = _ "smtp.server.com" '' Server port (typically 25) objMail.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 objMail.Configuration.Fields.Update ----- End of SMTP usage ----->8--- objMail.Send Set objMail=Nothing Wscript.Quit

Actualización: encontró más información allí: VBScript para enviar correo electrónico usando CDO Por defecto parece que usa Outlook [Express], por lo que no funcionó en mi computadora, pero puede usar un servidor SMTP dado, que funcionó bien para mí.


No sé si contar un binario junto con el archivo .bat cuenta como software de instalación, pero, de lo contrario, puede usar blat para hacerlo.


Si sucedió el servidor (me doy cuenta de la antigüedad de esta pregunta) para instalar Powershell v2, CmdLet Send-MailMessage lo haría en una línea.

Send-MailMessage [-To] <string[]> [-Subject] <string> -From <string> [[-Body] <string>] [[-SmtpServer] <string>] [-Attachments <string[]>] [-Bcc <string[]>] [-BodyAsHtml] [-Cc <string[]>] [-Credential <PSCredential>] [-DeliveryNotficationOption {None | OnSuccess | OnFailure | Delay | Never}] [-Encoding <Encoding>] [-Priority {Normal | Low | High}] [-UseSsl] [<CommonParameters>]


Si tienes Outlook / Exchange instalado, deberías poder usar CDONTs, simplemente crea un archivo mail.vbs y llámalo en un archivo por lotes como ese (me divierte estar en el mismo directorio)

wscript mail.vbs

para ver el código de VBScript

http://support.microsoft.com/kb/197920

http://www.w3schools.com/asp/asp_send_email.asp

Olvidémonos de que los dos enlaces hablan de ASP, debería funcionar bien como un script independiente sin iis.


Utilice CDONTS con Windows Scripting Host (WScript)