Или же уведомить при наступлении какого-то события, системного или нет, например, доступность сервера из интернета и т.д.
Итак, чтобы отправить с «батника» электронное письмо, нужно качнуть http://sourceforge.net/projects/blat/files/ разархивировать и содержимое папки «…full» скопировать в папку «C:WindowsSystem32«, а далее создаем файл send.bat, где пишем
rem Так как мы скопировали туда куда надо файлы архива то ниже строку не меняем
set file_blat=blat.exe
rem Предварительно создаем файл report.txt, где описываем текст сообщения
set file_text=D:
eport.txt
rem Предварительно создаем файл log_blat.txt, где будут ложиться логи
set file_log=D:log_blat.txt
rem SMTP сервер для отправки сообщения, например smtp.mail.ru
set from_server=smtp.inbox.ru
rem Порт SMTP сервера для отправки, например 2525 порт
set from_port=2525
rem Данные пользователя от которого будет отправлено сообщение
set from_mail=login@inbox.ru
rem Данные пользователя от которого отправляется сообщение
set from_name=login@inbox.ru
rem Пароль от почтового ящика пользователя от которого отправляется сообщение
set from_pass=1111
rem Электронный адрес, кому мы отправляем сообщение
set to_mail=login@mail.ru
rem Тема сообщения
set to_subject=»Report»
%file_blat% %file_text% -server %from_server%:%from_port% -f %from_mail% -u %from_name% -pw %from_pass% -to %to_mail% -s %to_subject% -log %file_log%
! Хочу обратить внимание на вот эти данные
rem SMTP сервер для отправки сообщения, например, smtp.mail.ru
set from_server=smtp.inbox.ru
rem Порт SMTP сервера для отправки, например 2525 порт
set from_port=2525
Так как почтовики сейчас перевели свои smtp сервера на безопасное соединение, типа SSL, поэтому для успешной отправки по данному соединению нужно еще качнуть вот эту беду https://www.stunnel.org/index.html, которую нужно установить, и при установке можно ставить все по умолчанию, без указания каких то параметров.
Эта штуковина, в нашем случае, дает нам возможность подключаться по безопасному соединению с локального компьютера.
После установки утилиты нужно через cmd.exe перейти в папку, куда была установлена программа, и выполнить
stunnel –install
чтобы установить программу как службу
stunnel –start
чтобы программа запустилась как служба
! Не закрываем командную строку
Потом, открыть и отредактировать файл
C:Program Files (x86)stunnelstunnel.conf
Например, в моем случаи для майл.ру конфиг выглядит так
[mail-pop3]
client = yes
accept = 127.0.0.1:110
connect = pop.mail.ru:995
[mail-smtp]
client = yes
accept = 127.0.0.1:587
connect = smtp.mail.ru:465
сберечь отредактированный файл, а далее в незакрытом ранее терминале выполняем
stunnel –reload
этим самым мы обновляем конфигурационный файл.
Ну, а теперь вернемся к указанию SMTP сервера и порта для отправки почты с командной строки, а именно, заменяем
rem SMTP сервер для отправки сообщения, например smtp.mail.ru
set from_server=smtp.inbox.ru
rem Порт SMTP сервера для отправки, например 2525 порт
set from_port=2525
нами ранее строки в файле send.bat на
rem Теперь SMTP сервер это наш компьютер
set from_server=127.0.0.1
rem Порт, взятый из stunnel.conf
set from_port=587
Вот и все, кидаем этот «батник» в Планировщик заданий, привязав к какому то событию, или вставляем все содержимое из send.bat в свой батник, например, который делает что-то полезное, и будет вам уведомление, что что-то полезное выполнилось, в моем случае вышло, что один «батник» вызывается Планировщиком, который сначала архивирует файловую базу БД, отправляет БД на фтп сервер и потом отправляет мне сообщение о выполнении.
Так же, приведу пример, для общего обозрения отправки электронного письма с помощью Powershell.
Создадим файл name.ps1 куда поместим
$EmailFrom = «Электронный адрес отправителя»
$EmailTo = » Электронный адрес получателя»
$Subject = «Тема сообщения»
$Body = «Текст сообщения»
$SMTPServer = «127.0.0.1 так как и выше, нужно использовать для отправки stunnel»
# 587 здесь иммется ввиду порт, см. выше о stunnel
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587)
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential(«Электронный адрес отправителя», «Пароль отправителя»);
$SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body)
Send-MailMessage -From $EmailFrom -To $EmailTo -Subject $Subject -Body $Body -SmtpServer $SMTPServer
Аналогичным образом использую blat для отправки уведомлений о наличие свободного места на серверах, их перезагрузки и т.д.
А у меня почему-то отправка из 1С 8.2 не взлетела….
(2) premier, в смысле? тут отправка через 1с-ку не описана, имелось ввиду отправка из ком.строки + повершел
(1) didkovskij, поделитесь каким образом вычисляете окончания свободного места?
(1) Тоже интересно
$SMTPServer = «127.0.0.1 так как и выше, нужно использовать для отправки stunnel»
Для использование ssl в случае PowerShell, stunnel не требуется. Используйте $SMTPClient.EnableSsl = $true
https://msdn.microsoft.com/ru-ru/library/system.net.mail.smtpclient.enablessl(v=vs.110).aspx
(3) а какая разница какой будет почтовый клиент? Главное в этой теме то, что stunnel выполняет функцию прокси сервера с SSL шифрованием.
Кстати, покопавшись в настройках, удалось-таки настроить работу с почтой через stunnel из 1С. Может, конечно, не совсем в тему публикации, но, повторюсь: в теме публикации главное — отправка почты с SSL шифрованием. А какой почтовый клиент — не важно.
(4) в cmd можно так
на выходе будет строка с числом определяющим остаток свободного места на диске с: в байтах.
для МБ делим это число два раза на 1024. для ГБ три раза.
(7) premier, если вы оССЫЛКА то где то и на этом ресурсе видел аналогичные способы
(9) да, в данном случае я об этом. И на инфостарте, кстати, тоже нашёл пример.
В тему публикации: есть ещё один способ отправки электронной почты из командной строки — объект Windows CDO.Message.
С его помощью также можно отправлять почту, используя шифрование. Я, например, делаю это с помощью Windows Script Host.
Пишется скрипт на jscript или vbscript (я предпочитаю jscript). В него в качестве аргументов передаем параметры (в примере они объявлены как переменные, но их можно и как аргументы передавать). И так же, как описано выше, создаем задание в планировщике, где вызываем csript.exe путь_к_нашему_скрипту аргументы. Файл csript.exe находится в системном каталоге Windows, так что полный путь до него можно и не указывать.
Через CDO.Message, по-моему, удобнее и устанавливать ничего дополнительно не нужно.
Вот пример с шифрованием пароля в скрипте.
Показать
(11) le_, отлично, пускай множество вариантов отправки будет приведено, спасибо
Ну, тогда в комментах тоже отмечусь. Для отправки использую консольную программу отправки почты Mailsend она умеет работать по ssl без stunnel.
(11)
Я так понял что это не реальный а уже зашифрованный пароль, а как его получить чтобы вбить в эту строку?