I’m running Windows 2003 Service Pack 2. I have a batch file that runs on demand. I want to have an email sent every time the batch file runs. The email is simple, just a sentence indicating that the batch file ran; it is the same every time.
I’ve tried a couple of things to get this done. I thought of telnet, but I can’t figure out how to redirect a set of commands into telnet; Windows batch files don’t have a Unix-style “here document,” and calling "telnet <scriptfile" where scriptfile contains the commands to send an email didn’t work. I also found a couple of solutions on the internet using CDO.Message, but I’ve never used that before and I kept getting error messages that I don’t understand.
How can I send a simple email from a Windows batch file?
Max is on he right track with the suggestion to use Windows Scripting for a way to do it without installing any additional executables on the machine. His code will work if you have the IIS SMTP service setup to forward outbound email using the “smart host” setting, or the machine also happens to be running Microsoft Exchange. Otherwise if this is not configured, you will find your emails just piling up in the message queue folder (\inetpub\mailroot\queue). So, unless you can configure this service, you also want to be able to specify the email server you want to use to send the message with. To do that, you can do something like this in your windows script file: