Я использую Windows 2003 Service Pack 2. У меня есть командный файл, который запускается по запросу. Я хочу получать электронное письмо при каждом запуске командного файла. Электронное письмо простое, всего лишь предложение, указывающее, что командный файл запущен; каждый раз одно и то же.
Я попробовал несколько вещей, чтобы это сделать. Я подумал о telnet, но не могу понять, как перенаправить набор команд в telnet; В пакетных файлах Windows нет «здесь документа» в стиле Unix, и вызов «telnet <файл сценария»
, где файл сценария содержит команды для отправки электронной почты, не работал. Я также нашел в Интернете пару решений с использованием CDO.Message, но я никогда не использовал это раньше, и я продолжал получать сообщения об ошибках, которых я не понимаю.
Как я могу отправить простое электронное письмо из командного файла Windows?
Если вы не можете следовать предложению Макса установить Blat (или любую другую утилиту) на ваш сервер, то, возможно, на вашем сервере уже установлено программное обеспечение, которое может отправлять электронные письма.
Я знаю, что и Oracle, и SqlServer имеют возможность отправлять электронную почту. Возможно, вам придется работать с вашим администратором баз данных, чтобы включить эту функцию и / или получить привилегию для ее использования. Конечно, я вижу, как это может представлять свой собственный набор проблем и волокиту. Предполагая, что вы можете получить доступ к этой функции, довольно просто зарегистрировать пакетный файл в базе данных и отправить почту.
Пакетный файл может легко запустить VBScript через CSCRIPT. Быстрый поиск в Google находит много ссылок, показывающих, как отправлять электронную почту с помощью VBScript. Первый, на который я случайно наткнулся, был http://www.activexperts.com/activmonitor/windowsmanagement/adminscripts/enterprise/mail/ . Это выглядит прямо вперед.
Это работает для меня, используя двойные кавычки вокруг переменных.
Я использую пакетный скрипт для вызова powershell Send-MailMessage
Пакетный скрипт: send_email.bat
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -command 'E:\path\send_email.ps1
Скрипт Pwershell send_email.ps1
Send-MailMessage -From "noreply@$env:computername" -To '<target_email@example.com>' -Subject 'Blah Blah' -SmtpServer 'smtp.domain.com' -Attachments 'E:\path\file.log' -BODY "Blah Blah on Host: $env:computername "