Добрый вечер.
Тема сегодняшней вечеринки это отправка почты с bat файла.
И так, поехали!
Для отправки почты мы будем использовать консольную программку sendmail. Она широко используеться в *nix системах, но есть и ее аналог под Windows. Вот он нам и нужен.
Скачать sendmail для windows ~800кб
В архиве мы обнаружим 4 файла, а нужен нам sendmail.ini. Через этот файл можно настроить работу самой утилиты. Открыв файл блокнотом, можно заметить комментарии на русском языке.
Из настроек нужно указать smtp_server=server_name, ну и логи. Остальное можно закомментировать.
Готово?
Далее готовим письмо, которое будем отправлять. Создаем текстовый файл (напр. message.txt), можно прямо в папке с sendmail и пишем туда вот такое:
Ну думаю, что не стоит обьяснять что к чему. Просто укажите желаемые адреса. Сохраняем.
Создаем test.bat и делаем в нем запись:
c:\sendmail\sendmail.exe -t < c:\sendmail\message.txt
Где c:\sendmail это путь к папке с утилитой. Сохраняем, запускаем.
Если возникают проблемы, смотрим error.log и debug.log в папке с sendmail.
Вот с помощью таких простых штучек и было написано оповещение админу, при малом количестве свободного места на диске. Bat файл проверяет наличие места, если его мало, то идет отправка письма ему на мыло. Вот такая вот вечеринка у нас вышла.
Спасибо!
Тема сегодняшней вечеринки это отправка почты с bat файла.
И так, поехали!
Для отправки почты мы будем использовать консольную программку sendmail. Она широко используеться в *nix системах, но есть и ее аналог под Windows. Вот он нам и нужен.
Скачать sendmail для windows ~800кб
В архиве мы обнаружим 4 файла, а нужен нам sendmail.ini. Через этот файл можно настроить работу самой утилиты. Открыв файл блокнотом, можно заметить комментарии на русском языке.
Из настроек нужно указать smtp_server=server_name, ну и логи. Остальное можно закомментировать.
Готово?
Далее готовим письмо, которое будем отправлять. Создаем текстовый файл (напр. message.txt), можно прямо в папке с sendmail и пишем туда вот такое:
From: sales@example.com To: ivan@example.com Subject: Ваш заказ принят
И тут пишем текст письма
Ну думаю, что не стоит обьяснять что к чему. Просто укажите желаемые адреса. Сохраняем.
Создаем test.bat и делаем в нем запись:
c:\sendmail\sendmail.exe -t < c:\sendmail\message.txt
Где c:\sendmail это путь к папке с утилитой. Сохраняем, запускаем.
Если возникают проблемы, смотрим error.log и debug.log в папке с sendmail.
Вот с помощью таких простых штучек и было написано оповещение админу, при малом количестве свободного места на диске. Bat файл проверяет наличие места, если его мало, то идет отправка письма ему на мыло. Вот такая вот вечеринка у нас вышла.
Спасибо!
Всё сделал как вы указали, но комманда c:\sendmail\sendmail.exe -t < c:\sendmail\message.txt не выполняется, sendmail просто виснет:(
ОтветитьУдалитьЧто-то есть в логах? error.log и debug.log
Удалитьнет пусто, просто появляется командная строка с sendmail и всё, курсор мигает.
ОтветитьУдалитьконфиг:
конфигурационный файл sendmail
[sendmail]
; здесь укажите сервер исходящей почты
smtp_server=smtp.mail.ru
; порт smtp, если обычный режим отправки, то порт будет 25
; если сервер работает в защищенном режиме (TLS), то порт 465, например почта гугла работает через 465 порт
smtp_port=25
; домен по умолчанию (совсем не обязательно)
;default_domain=local
; лог ошибок
error_logfile=error.log
; лог отправки, необходим на стадии тестирования. содержит весь текст переговоров с сервером при отправке.
debug_logfile=debug.log
; Если smtp сервер с авторизацией, укажите логин пароль(без кавычек), если без авторизации ничего не пишите
auth_username=vasya.pupkin@mail.ru
auth_password=vasya.pupkin
; если перед отправкой почты сервер требует авторизацию через POP, заполните эти поля
pop3_server=pop.mail.ru
pop3_username=vasya.pupkin@mail.ru
pop3_password=vasya.pupkin
; email адрес, от которого идет отправка, вставится в заголовок "From: "
; если отправка писем идет через mail.ru, здесь обязательно должен быть адрес, через который произведена авторизация.
;force_sender=vasya.pupkin@mail.ru
; хост, который указывается при авторизации в команде ehlo/helo
; указывайте домен, через который авторизуетесь
;hostname=mail.ru
Посмотрите вот еще обсуждение http://webi.ru/webi_articles/sendmail_ini.html
УдалитьУ меня тоже не вышло отправить почту через mail.ru, получил ошибку. Но у меня логи пишутся.
;force_sender=vasya.pupkin@mail.ru
УдалитьУ Вас это значение за комментировано ";" уберите перед строчкой
А как добавить файл в письмо? Тоесть нужно отправлять файл
ОтветитьУдалитьПосмотрите информацию по ссылкам:
Удалитьhttp://www.shelldorado.com/articles/mailattachments.html#uuencode
http://www.shelldorado.com/articles/mailattachments.html#mime
Похоже параметр -a решает проблему.
Пример:
c:\sendmail\sendmail.exe -s "Birthday celebration" -a citymap.jpg all@friends.org \
< invitation.txt
С вложением не катит
УдалитьРебят подскажите какой командой файл прикрепить. остылает норм. а вот файл.. никак((
ОтветитьУдалитьНашел одну прикольную прогу.
Удалитьhttp://caspian.dotconf.net/menu/Software/SendEmail/
Там все есть. И нормальный хелп есть тоже. Attach файлов работает на ура. Если будут вопросы, пиши.
Вот пример:
E:\temp\sendEmail-v156>sendEmail.exe -xu mylogin@gmail.com -xp mypass -t to@gmail.com -a E:\temp\sendmail\message.txt -m "mymessage" -f "from@gmail.com"
рабочий конфиг для mail.ru ////
ОтветитьУдалить; конфигурационный файл sendmail
[sendmail]
; здесь укажите сервер исходящей почты
smtp_server=smtp.mail.ru
; порт smtp, если обычный режим отправки, то порт будет 25
; если сервер работает в защищенном режиме (TLS), то порт 465, например почта гугла работает через 465 порт
smtp_port=25
; SMTPS (SSL) support
; auto = use SSL for port 465, otherwise try to use TLS
; ssl = alway use SSL
; tls = always use TLS
; none = never try to use SSL
smtp_ssl=none
; домен по умолчанию (совсем не обязательно)
;default_domain=local
; лог ошибок
error_logfile=error.log
; лог отправки, необходим на стадии тестирования. содержит весь текст переговоров с сервером при отправке.
debug_logfile=debug.log
; Если smtp сервер с авторизацией, укажите логин пароль(без кавычек), если без авторизации ничего не пишите
auth_username=pilot16@bk.ru
auth_password=************
; если перед отправкой почты сервер требует авторизацию через POP, заполните эти поля
;pop3_server=imapi.mail.ru
;pop3_username=pilot16@bk.ru
;pop3_password=************
; email адрес, от которого идет отправка, вставится в заголовок "From: "
; если отправка писем идет через mail.ru, здесь обязательно должен быть адрес, через который произведена авторизация.
force_sender=pilot16@bk.ru
; хост, который указывается при авторизации в команде ehlo/helo
; указывайте домен, через который авторизуетесь
hostname=mail.ru
Добрый день! С наступающим новым 2019 годом! Актуальность статья не потеряла, однако mail.ru и yandex.ru изменили протоколы.Хотелось бы здесь увидеть пример для отправки на ящики mail, ysndex по SSL протоколу.
ОтветитьУдалитьВот мой рабочий конфиг под Gmail. С яшей и майл.ру должно быть аналогично.
Удалитьhttps://pastebin.com/0WbjFpfu
Добрый день.
ОтветитьУдалитьЕсть ли возможность прикрепить файл через message.txt или BAT файл ?
Экзотические растения семена адениума и другие комнатные цветы.
ОтветитьУдалитьвечер