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

Синтаксис очень простой - достаточно запустить
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 mymail@gmail.com | адрес отправителя |
| -server localhost | почтовый сервер |
| -port 465 | SMTP порт |
| -u mymail@gmail.com | логин для входа в почтовый ящик |
| -pw HKHsjshfw3222 | пароль для входа в почтовый ящик |
| -to mymail@mymaildomain.com | адрес получателя< |
| -subject “Backup My DATA” | тема письма |
| -attachi c:\send_mail\backup.log | текстовый файл отчета |
| -body “Hello!” | Начало письма, дальше информация из backup.log |
Вот и все. И главное - работает!
Посты по теме:
Отправка писем в 1С используя аккаунт Gmail (через Google почту)Не работает Gmail
Как перенести фильтры Gmail
pop.gmail.com не поддерживает хранение сообщений на сервере
Пересылка старых писем в GMail

Огромное пасибо очень помогло
Очень хорошая
Большое пасибо
А для mail.ru или yandex можно как нить настроить blat ?
мне кажется без проблем,
по аналогии
не работает ни маил.ру ни гмаил.ком - пишет:
Error: Connection to server was dropped.
SMTP server error
Error: Not a socket.
Error: Not a socket.
с настройкой через майл.ру проблемм небыло…главное проинсталить правильно (ну там полный адрес вместо логина и т.д.)…а вот с gmail.com не получалось…спасибо огромное
Рад что у вас получилось отправить письмо через gmail из консоли
Насколько же оказывется просто и элегантно!
Большое спасибо.
ага, классно, а главное надежно!
у меня выдает ошибку
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
TiM, stunnel правильно установили и настроили, запустить не забыли?
Проверьте создались ли порты на локальном интерфейсе
(команда cmd, а в ней netstat -an )
И конечно же на компе должен быть “прямой” интернете, а не только прокси траффик, но это я так предупреждаю на всякий случай, мало ли что, т.е. ping -t gmail.com должен выполняться без вопросов (хотя конечно это не гарантирует что у вас открыт tcp траффик)
Я после того как отписался об ошибке, удалил из stunel.conf все и записал 11 строк которые здесь написаны и сразу заработало. Отписаться забыл.
Спасибо за статью.
тогда все хорошо
я сделал как описано и у меня тоже все работает…
спасибо