Отправка почты из командной строки

Отправка электронной почты из командной строки Windows.

Главная Контакты Каталог О проекте Поиск RAVENSBLADE.RU

В этой статье я расскажу вам как с помощью бесплатной консольной программы Blat отправлять электронную почту из командной строки Windows или же из пакетного файла. Данный способ очень хорошо подходит для отправки однотипных сообщений по электронной почте.

Скачать программу можно с официального сайта:
Или напрямую с Sourceforge:
В директории программы (там где лежит файл «blat.exe» создаем пакетный файл MS-DOS. Открываем его и в нем пишем:

BATCH

Копировать код

А теперь разберем данный пример подробнее:

-server mailserver.com — вместо mailserver.com нужно указать свой почтовый сервер. Часто бывает mail.example.com или же smtp.mail.ru (применительно к почтовому сервису mail.ru). Подробнее об этом вы можете узнать у своего поставщика услуг электронной почты.

-f ot_kogo@example.com — меняем ot_kogo@example.com на свой адрес электронной почты, например vasya_pupkin@example.com.

-u mail_login — вместо поля mail_login нужно вписать свой логин электронной почты. Может быть как просто vasya_pupkin или же vasya_pupkin@example.com.

-pw write_pass_there — вместо write_pass_there пишем свой пароль от почты.

-tf sendlist.txt — создаете текстовый файл и в него пишете адреса электронной почты, на которые собираетесь отсылать сообщения. Пишется просто в столбик.

Рис. 1

Если вам нужно отсылать письмо только на один адрес электронной почты, то вам нужно заменить -tf sendlist.txt на -to komu@example.com, где komu@example.com — адрес электронной почты того человека, которому вы отсылаете сообщение. -subject tema_pisma — здесь указываем тему сообщения.

-body «tekst_sooboscheniya» — здесь указываем само сообщение. Например, «Привет! Как дела?».

-attach file.txt — вместо file.txt указываем прикрепляемый к сообщению файл (вложение). Если файл не располагается в одной папке с программой, то вы можете указывать полный путь до файла. Например «C:\file.txt».

Скачать готовый пример вы можете чуть ниже нажав кнопку «Скачать». Распаковываете архив, находите файл blat.bat, жмёте на нём правой кнопкой мыши и выбираете пункт «Изменить». Далее меняете параметры по описаниую, указанному выше в этой статье.

» Назад

Отправка сообщений электронной почты из командной строки, с помощью утилиты Blat.exe

Сегодня я расскажу о том, как отправлять сообщения на электронную почту из командной строки. Можно привести массу ситуаций, когда необходимо выполнять данное действие. Например, для контроля выполнения различных регламентных заданий, резервного копирования баз данных и пр. А поможет нам в этом маленькая, удобная и абсолютно бесплатная утилита Blat.exe.

1. Утилита Blat.exe

Скачать программу Blat можно с официального сайта или с текущего. На момент написания статьи последней была версия 3.0.7. В архиве 2 папки: full — непосредственно сама программа и docs — документация по программе. Для установки необходимо скопировать содержимое папки full в «C:\Windows\system32\» или в любую другую директорию, но в этом случае при вызове программы придется указывать путь к исполняемому файлу. Я в своем примере буду использовать второй вариант.

Есть возможность сразу создать профиль для отправки сообщений, для этого необходимо выполнить «Blat -install smtp.yoursite.tld youruserid@yoursite.tld». Я не буду рассматривать данный режим работы. Подробнее читайте в файле «readme.txt».

2. bat-файлы для отправки сообщений

Если открыть файл «syntax.txt» из прилагаемой документации, то можно увидеть огромный список команд, поддерживаемый данной утилитой, что говорит о ее богатых возможностях. Выделим основные и получим следующий «батник» send_email.bat (все файлы в одном архиве) для отправки сообщения с адреса report@mydomen.com на адрес user@mydomen.com:

rem *** Путь к программе blat.exe *** set file_blat=D:\blat\blat.exe rem *** Путь к файлу с текстом сообщения *** set file_text=D:\blat\report.txt rem *** Путь к файлу для сохранения лога *** set file_log=D:\blat\log_blat.txt rem *** Данные отправителя *** set from_server=smtp.mydomen.com set from_port=25 set from_mail=report@mydomen.com set from_name=report set from_pass=password rem *** Данные получателя *** set to_mail=user@mydomen.com set to_subject=»Report» rem *** Отправка сообщения *** %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%

Таким образом, для отправки сообщения достаточно будет просто вызвать файл send_email.bat:

Можно доработать файл таким образом, чтобы адрес получателя и тема сообщения задавалась параметрами запуска. Вот содержимое такого bat-файла:

rem *** Путь к программе blat.exe *** set file_blat=D:\blat\blat.exe rem *** Путь к файлу с текстом сообщения *** set file_text=D:\blat\report.txt rem *** Путь к файлу для сохранения лога *** set file_log=D:\blat\log_blat.txt rem *** Данные отправителя *** set from_server=smtp.mydomen.com set from_port=25 set from_mail=report@mydomen.com set from_name=report set from_pass=password rem *** Отправка сообщения *** %file_blat% %file_text% -server %from_server%:%from_port% -f %from_mail% -u %from_name% -pw %from_pass% -to %1 -s %2 -log %file_log%

И пример его запуска с параметрами:

Если получателей несколько, то при вызове утилиты можно указать текстовый файл с адресами получателей сообщения:

rem *** Путь к программе blat.exe *** set file_blat=D:\blat\blat.exe rem *** Путь к файлу с текстом сообщения *** set file_text=D:\blat\report.txt rem *** Путь к файлу для сохранения лога *** set file_log=D:\blat\log_blat.txt rem *** Путь к файлу с адресами получателей *** set file_to=D:\blat\mail_list.txt rem *** Тема сообщения *** set to_subject=»Report» rem *** Данные отправителя *** set from_server=smtp.mydomen.com set from_port=25 set from_mail=report@mydomen.com set from_name=report set from_pass=password rem *** Отправка сообщения *** %file_blat% %file_text% -server %from_server%:%from_port% -f %from_mail% -u %from_name% -pw %from_pass% -tf %file_to% -s %to_subject% -log %file_log%

Где файл mail_list.txt будет содержать адреса получателей разделенные переносом строки.

Ну и наконец, приведу пример файла, который я использую в данный момент. В нем все файлы находятся в директории с исполняемым bat-файлом, список адресов берется из файла, а тема письма задается параметром. Сделано это для того чтобы в зависимости от работы задания отсылать письма с разной темой. Например:

rem Резервное копирование завершилось успешно call D:\blat\send_email.bat «Backup — OK» rem Резервное копирование завершилось c ошибкой call D:\blat\send_email.bat «Backup — ERROR»

Содержимое файла:

rem *** Основная директория файла *** set dir=%~dp0 rem *** Путь к программе blat.exe *** set file_blat=%dir%\blat.exe rem *** Путь к файлу с текстом сообщения *** set file_text=%dir%\report.txt rem *** Путь к файлу для сохранения лога *** set file_log=%dir%\log_blat.txt rem *** Путь к файлу с адресами получателей *** set file_to=%dir%\mail_list.txt rem *** Данные отправителя *** set from_server=smtp.mydomen.com set from_port=25 set from_mail=report@mydomen.com set from_name=report set from_pass=password rem *** Отправка сообщения *** %file_blat% %file_text% -server %from_server%:%from_port% -f %from_mail% -u %from_name% -pw %from_pass% -tf %file_to% -s %1 -log %file_log%

3. Заключение

Данные примеры не описывают все возможности программы Blat.exe. Она поддерживает сервера SMTP, NNTP, POP3 и IMAP, есть возможность хранить настройки в файле или в реестре, прикреплять вложения в тело письма и многое другое. Я думаю, что взяв за основу предложенные выше файлы, вы сможете написать любой скрипт для отправки электронных сообщений при помощи этой замечательной утилиты.

Помогла ли Вам данная статья?

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *