Отправка писем из командной строки Windows используя аккаунт GMail

Раздел: Windows, Инструменты, Советы
Написано: 19.05.2009
Автор: Antonio

Отправка писем из командной строки используется администраторами при отправке отчетов о выполнении автоматизированных действий.
(завершение резервного копирования, экспорт базы данных, удаление устаревшей информации и прочее)

Для этих целей как нельзя лучше подходит маленькая консольная программа для отправки почты — blat — ссылка

blat_screen


Синтаксис очень простой — достаточно запустить

blat /?

И вам откроется подробное описание ключей, которое расскажет как можно использовать программу.

Для отправки сообщений необходимо указать базовые данные: кому, что, от кого, через какой сервер.

Если у вас есть свой локальный почтовый сервер и вы его настраивали, то думаю вопросов у вас не возникнет.
Поэтому на этом останавливаться не будем, а лучше рассмотрим вариант с использованием почтового аккаунта всеми известной службы GMail.
Тут не все так просто так как при использовании жмаил необходимо указывать безопасные порты с поддержкой SSL (Сервер исходящей почты (SMTP): smtp.gmail.com порт 465) и blat напрямую работать с gmail или почтой из google apps не может.

Решение:
использование связки blat + stunnel

1. Скачиваем последнюю версию stunnel — ссылка
2. Настраиваем конфиг stunnel.conf

1
2
3
4
5
6
7
8
9
10
11
socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1
 
debug = 7
output = stunnel.log
 
client = yes
 
[ssmtp]
accept  = 127.0.0.1:465
connect = smtp.gmail.com:465

3. Инсталлируем stunnel как сервис командой

«C:\Program Files\stunnel\stunnel.exe» -install

или находим в меню ярлык Пуск…

4. Скачиваем blat и распаковываем в каталог, например, C:\send_mail
5. Создаем файл send_mail.cmd:

1
c:\send_mail\blat.exe -f mymail@gmail.com -server localhost -port 465 -u mymail@gmail.com -pw HKHsjshfw3222 -to mymail@mymaildomain.com -subject "Backup My DATA" -attachi c:\send_mail\backup.log -body "Hello!"

Подробнее об опциях:

-f [email protected] адрес отправителя
-server localhost почтовый сервер
-port 465 SMTP порт
-u [email protected] логин для входа в почтовый ящик
-pw HKHsjshfw3222 пароль для входа в почтовый ящик
-to [email protected] адрес получателя<
-subject «Backup My DATA» тема письма
-attachi c:\send_mail\backup.log текстовый файл отчета
-body «Hello!» Начало письма, дальше информация из backup.log

Вот и все. И главное — работает!

Поделиться с друзьями или в соц.сетях (спасибо)
Ещё похожие заметки:

37 комментариев

Антон
Мар 30, 2010 13:30

Огромное пасибо очень помогло
Очень хорошая
Большое пасибо

 
Антон
Мар 30, 2010 14:40

А для mail.ru или yandex можно как нить настроить blat ?

 
Antonio
Мар 30, 2010 23:22

мне кажется без проблем,
по аналогии

 
Flak
Июн 15, 2010 16:20

не работает ни маил.ру ни гмаил.ком — пишет:

Error: Connection to server was dropped.
SMTP server error
Error: Not a socket.
Error: Not a socket.

 
Юрко :)
Июн 24, 2010 19:47

с настройкой через майл.ру проблемм небыло…главное проинсталить правильно (ну там полный адрес вместо логина и т.д.)…а вот с gmail.com не получалось…спасибо огромное :)

 
Antonio
Июн 24, 2010 22:19

Рад что у вас получилось отправить письмо через gmail из консоли :-)

 
Константин
Сен 28, 2010 02:36

Насколько же оказывется просто и элегантно!
Большое спасибо.

 
Antonio
Сен 29, 2010 23:52

ага, классно, а главное надежно!

 
TiM
Окт 23, 2010 15:54

у меня выдает ошибку

Error: Connection to server was dropped.
SMTP server error
Error: Not a socket.
Error: Not a socket.

C:\sent>send.cmd

C:\sent>ipconfig 1>ip.txt

C:\sent>c:\sent\blat.exe -f МОЯ@gmail.com -server localhost -port 587 -u МОЯ@gmail.com -pw 84627913 -to ПОЛУЧАТЕЛЬ@ -subject «Backup My DATA»
-attachi c:\sent\ip.txt -body «Hello!»
Blat v2.6.2 w/GSS encryption (build : Feb 25 2007 12:06:19)

Error: Server refused connection.

три порта пробывал 465,995,587

 
Antonio
Окт 23, 2010 23:09

TiM, stunnel правильно установили и настроили, запустить не забыли?
Проверьте создались ли порты на локальном интерфейсе
(команда cmd, а в ней netstat -an )

 
Antonio
Окт 23, 2010 23:12

И конечно же на компе должен быть «прямой» интернете, а не только прокси траффик, но это я так предупреждаю на всякий случай, мало ли что, т.е. ping -t gmail.com должен выполняться без вопросов (хотя конечно это не гарантирует что у вас открыт tcp траффик)

 
TiM
Окт 24, 2010 12:41

Я после того как отписался об ошибке, удалил из stunel.conf все и записал 11 строк которые здесь написаны и сразу заработало. Отписаться забыл.

Спасибо за статью.

 
Antonio
Окт 24, 2010 23:43

тогда все хорошо =)

 
Anton
Ноя 5, 2010 09:37

я сделал как описано и у меня тоже все работает…
спасибо

 
Olzhas
Янв 27, 2013 21:16

Спасибо за статью!
А как можно добавить текущее время в поле «тема письма»?

 
Antonio
Янв 27, 2013 22:57

Попробуйте использовать конструкцию
%date% %time:~,8%

выводит: 27.01.2013 21:51:50

 
Olzhas
Янв 28, 2013 21:41

Спасибо, работает!

 
Antonio
Янв 28, 2013 21:51

Рад что получилось =)

 
Сергей
Фев 17, 2014 06:55

Добрый день.Для моей ситуации посоветовали именно эту програмку,помогите разобраться.Мне нужно что бы с домашнего компьютера при подключении к интернету(динамический ip адрес) blat.exe отправляла его ip адрес мне на почту что бы я мог с работы подключаться к домашнему компьютеру.Как это организовать?

 
Antonio
Фев 17, 2014 15:57

Сергей обычно для этих целей используют сервис типа dyndns.
Там выбирается домен и в устройство (есть практически во всех современных роутерах) или программу на компьютере задается логин и пароль. И дальше IP сам обновляется, а к компьютеру подключаются через домен. Удобно. Или можно использовать типа тимвивера или логми — это еще проще.

 
Сергей
Фев 18, 2014 21:52

Спасибо за ответ.Покопавшись в интернете сам сделал скриптик,поместил его в автозагрузку и при запуске системы ipconfig /all в текстовом документе у меня на почте.Очень полезная программка.

 
Сергей
Фев 18, 2014 22:05

Для удаленного доступа использую RMS.Очень много полезных функций.Можно подключаться по id в обход ip адреса.

 
Antonio
Фев 18, 2014 23:34

Можно и так, вариантов масса, главное подобрать подходящий =)

 
Сергей
Фев 19, 2014 22:14

Добрый день,это снова я)В интернете нашел скриптик который выводит установленный софт в системе,но как сделать так что бы результат переводился в текстовый документ.Куда подставлять > c:\1.txt .Очень нужно. Вот сам скрипт
..

 
Antonio
Фев 25, 2014 22:56

Приветствую, сейчас черкану заметку в блог, а то скрипт повредился при переносе

 
Antonio
Фев 26, 2014 00:21

Вот что получилось

http://nemcd.com/2014/02/vyvod-spiska-ustanovlennyx-programm-konsol-cmd-windows/

 
Анатолий
Янв 12, 2015 18:09

ipconfig/all > id.txt
blat.exe -install -server smtp.mail.ru -port 25 -f mail.ru[@]mail.ru -u mail.ru[@]mail.ru -pw 123456789
blat.exe id.txt -to mail.ru[@]mail.ru
del id.txt
pause

 
Анатолий
Янв 12, 2015 18:10

Подскажите пожалуйста как сделать с помощью этой програмки перенаправление с 25 на 465 порт

 
DVV
Май 24, 2015 01:16

Здравствуйте.
Я не специалист во всех этих премудростях.
Но требуется в атоматическом режиме отправлять почту на mail.ru
Все ключи-настройки проверил, всё-равно ошибка

Error: Not a socket.
Error: Not a socket.
Вопрос: на самом сервере (mail.ru) надо что-то настраивать??

 
Antonio
Май 24, 2015 22:46

Здравствуйте, возможно вы ошиблись в настройках,
я глянул ящик майл.ру, но не проверял работу с ним, в настройках ничего вроде нету особого чтобы отправлять.
Вот мануал, проверьте, правильно ли вы задаете smtp сервер
help.mail.ru/mail-help/mailer/popsmtp

 
Али
Июн 16, 2015 10:21

Здравствуйте! Все сделал — все работает. Осталось только прикрепить файл — не подскажете как?! И тогда эта программка будет высылать на емейл бэкап базы!

 
Али
Июн 16, 2015 10:29

Так все! Вместе «-attachi» пишем «-attach» ! Супер! Спасибо вам большое!

 
Antonio
Июн 17, 2015 20:29

Здравствуйте, пожалуйста =)

-attach это есть нужно прикрепить бинарный файл, а если текстовый, то как у меня написано, проверил только что в хелпе блата

-attach : attach binary file(s) to message (filenames comma separated)
-attacht
: attach text file(s) to message (filenames comma separated)
-attachi
: attach text file(s) as INLINE (filenames comma separated)

 
Али
Июн 30, 2015 09:22

Что-то перестало работать.. Говорит:

The SMTP server did not accept Auth PLAIN value.
Are your login userid and password correct?
The SMTP server did not accept Auth LOGIN PASSWD value.

Пароль от почты не меняли.

 
Али
Авг 10, 2015 07:57

Что-то перестало работать.. Говорит:

The SMTP server did not accept Auth PLAIN value.
Are your login userid and password correct?
The SMTP server did not accept Auth LOGIN PASSWD value.

Пароль от почты не меняли.

 
Али
Авг 14, 2015 11:37

MailSend — SMTP client
кому нужно — еще один вариант. Получилось через mail.ru

 
Antonio
Ноя 27, 2015 12:06

Спасибо, Али

 

Написать

Копирование информации с сайта возможно только с указанием прямой ссылки - https://nemcd.com