У нас есть script для резервного копирования файлов. По завершении операции резервного копирования мы хотели бы отправить отчет как уведомление по электронной почте на некоторые из наших адресов электронной почты.
Как это можно сделать?
У нас есть script для резервного копирования файлов. По завершении операции резервного копирования мы хотели бы отправить отчет как уведомление по электронной почте на некоторые из наших адресов электронной почты.
Как это можно сделать?
Blat:
blat -to [email protected] -server smtp.example.com -f [email protected] -subject "subject" -body "body"
Вы также можете использовать Power Shell script:
$smtp = new-object Net.Mail.SmtpClient("mail.example.com")
if( $Env:SmtpUseCredentials -eq "true" ) {
$credentials = new-object Net.NetworkCredential("username","password")
$smtp.Credentials = $credentials
}
$objMailMessage = New-Object System.Net.Mail.MailMessage
$objMailMessage.From = "[email protected]"
$objMailMessage.To.Add("[email protected]")
$objMailMessage.Subject = "eMail subject Notification"
$objMailMessage.Body = "Hello world!"
$smtp.send($objMailMessage)
PowerShell имеет встроенную команду. Так что работайте непосредственно из файла .bat
:
powershell -ExecutionPolicy ByPass -Command Send-MailMessage ^
-SmtpServer server.address.name ^
-To [email protected] ^
-From [email protected] ^
-Subject Testing ^
-Body 123
NB -ExecutionPolicy ByPass
требуется, только если вы не настроили разрешения для запуска PS из CMD
Также для тех, кто хочет вызвать его из powershell, отбросьте все до -Command
[включительно], а `
будет вашим escape-символом (не ^
)
bmail. Просто установите EXE и запустите следующую строку:
bmail -s myMailServer -f [email protected] -t [email protected] -a "Production Release Performed"
Самый простой способ - использовать стороннее приложение, упомянутое другими
Если это не вариант, я написал простую утилиту sendmail, использующую vbscript и CDO, которые я вызывал из пакета script
См. примеры здесь http://www.paulsadowski.com/WSH/cdo.htm
Мы используем blat, чтобы делать это все время в нашей среде. Я также использую его для подключения к Gmail с Stunnel. Здесь параметры для отправки файла
blat -to [email protected] -server smtp.example.com -f [email protected] -subject "subject" -body "body" -attach c:\temp\file.txt
Или вы можете поместить этот файл в тело
blat c:\temp\file.txt -to [email protected] -server smtp.example.com -f [email protected] -subject "subject"
Вы также можете использовать sendmail. Я использую его в этом кэше subversion для отправки уведомлений по электронной почте: post-commit hook
Существует несколько методов для решения этой проблемы.
Мой совет - использовать мощное бесплатное консольное приложение Windows SendEmail.
sendEmail.exe -f [email protected] -o message-file=body.txt -u subject message -t [email protected] -a attachment.zip -s smtp.gmail.com:446 -xu gmail.login -xp gmail.password