Как отправить простое электронное письмо из командного файла Windows?

Я использую Windows 2003 Service Pack 2. У меня есть командный файл, который запускается по запросу. Я хочу получать электронное письмо при каждом запуске командного файла. Электронное письмо простое, всего лишь предложение, указывающее, что командный файл запущен; каждый раз одно и то же.

Я попробовал несколько вещей, чтобы это сделать. Я подумал о telnet, но не могу понять, как перенаправить набор команд в telnet; В пакетных файлах Windows нет «здесь документа» в стиле Unix, и вызов «telnet <файл сценария» , где файл сценария содержит команды для отправки электронной почты, не работал. Я также нашел в Интернете пару решений с использованием CDO.Message, но я никогда не использовал это раньше, и я продолжал получать сообщения об ошибках, которых я не понимаю.

Как я могу отправить простое электронное письмо из командного файла Windows?

29
задан Will Ness 7 June 2013 в 14:58
поделиться

2 ответа

Если вы не можете следовать предложению Макса установить Blat (или любую другую утилиту) на ваш сервер, то, возможно, на вашем сервере уже установлено программное обеспечение, которое может отправлять электронные письма.

Я знаю, что и Oracle, и SqlServer имеют возможность отправлять электронную почту. Возможно, вам придется работать с вашим администратором баз данных, чтобы включить эту функцию и / или получить привилегию для ее использования. Конечно, я вижу, как это может представлять свой собственный набор проблем и волокиту. Предполагая, что вы можете получить доступ к этой функции, довольно просто зарегистрировать пакетный файл в базе данных и отправить почту.

Пакетный файл может легко запустить VBScript через CSCRIPT. Быстрый поиск в Google находит много ссылок, показывающих, как отправлять электронную почту с помощью VBScript. Первый, на который я случайно наткнулся, был http://www.activexperts.com/activmonitor/windowsmanagement/adminscripts/enterprise/mail/ . Это выглядит прямо вперед.

0
ответ дан 28 November 2019 в 01:53
поделиться

Это работает для меня, используя двойные кавычки вокруг переменных.

Я использую пакетный скрипт для вызова 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 "
0
ответ дан 28 November 2019 в 01:53
поделиться