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?
Creo que tendrá que instalar algún componente de ActiveX u otro que pueda invocarse desde WScript, como por ejemplo: http://www.activexperts.com/ActivEmail/ y: http://www.emailarchitect.net/webapp/ SMTPCOM / developers / scripting.asp
De lo contrario, tendrá que escribir toda la lógica de SMTP (si es posible, no está seguro) en WScript por su cuenta.
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)