Если у вашей операционной системы есть PowerShell, вы можете сделать это из CMD.EXE как однострочный (эффективно) без , не вызывая блокировку привилегий выполнения скрипта , просто выполнив:
powershell -command $S=New-Object Net.Mail.SmtpClient('your.smtp.server',port);$S.Send('addr-from','addr-to','subject','body')
Объединение строк с; и выполнение в качестве одной команды PS уклоняется от проверки / настройки выполнения сценария. Конечно, существует ограничение на длину одной командной строки в CMD.EXE, поэтому этот точный метод накладывает некоторые ограничения на количество получателей, размер субъекта и тело и т. Д., Но есть Я уверен, что это возможно в другом месте.
Естественно, я использую это гораздо надежнее, заключая его в .BAT, который превращает его в утилиту (идеально подходит для сценариев с низким коэффициентом трения на заблокированных хостах Windows) с проверкой параметров, обработкой ошибок, ведением журнала и т. Д. Офигеть.
Если ваш SMTP-сервер требует аутентификации, вы можете добавить дополнительную необходимую конфигурацию SmtpClient по мере необходимости, что, конечно, дополнительно ограничит длину.
РЕДАКТИРОВАТЬ : вставьте это перед $S.Send
, чтобы добавить аутентификацию:
$S.EnableSsl=$true;$S.Credentials=New-Object System.Net.NetworkCredential('usr', 'pass');