Отправка писем из командной строки 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 [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 |
Вот и все. И главное — работает!
Огромное пасибо очень помогло
Очень хорошая
Большое пасибо
А для 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 строк которые здесь написаны и сразу заработало. Отписаться забыл.
Спасибо за статью.
тогда все хорошо
я сделал как описано и у меня тоже все работает…
спасибо
Спасибо за статью!
А как можно добавить текущее время в поле «тема письма»?
Попробуйте использовать конструкцию
%date% %time:~,8%
выводит: 27.01.2013 21:51:50
Спасибо, работает!
Рад что получилось
Добрый день.Для моей ситуации посоветовали именно эту програмку,помогите разобраться.Мне нужно что бы с домашнего компьютера при подключении к интернету(динамический ip адрес) blat.exe отправляла его ip адрес мне на почту что бы я мог с работы подключаться к домашнему компьютеру.Как это организовать?
Сергей обычно для этих целей используют сервис типа dyndns.
Там выбирается домен и в устройство (есть практически во всех современных роутерах) или программу на компьютере задается логин и пароль. И дальше IP сам обновляется, а к компьютеру подключаются через домен. Удобно. Или можно использовать типа тимвивера или логми — это еще проще.
Спасибо за ответ.Покопавшись в интернете сам сделал скриптик,поместил его в автозагрузку и при запуске системы ipconfig /all в текстовом документе у меня на почте.Очень полезная программка.
Для удаленного доступа использую RMS.Очень много полезных функций.Можно подключаться по id в обход ip адреса.
Можно и так, вариантов масса, главное подобрать подходящий
Добрый день,это снова я)В интернете нашел скриптик который выводит установленный софт в системе,но как сделать так что бы результат переводился в текстовый документ.Куда подставлять > c:\1.txt .Очень нужно. Вот сам скрипт
..
Приветствую, сейчас черкану заметку в блог, а то скрипт повредился при переносе
Вот что получилось
http://nemcd.com/2014/02/vyvod-spiska-ustanovlennyx-programm-konsol-cmd-windows/
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
Подскажите пожалуйста как сделать с помощью этой програмки перенаправление с 25 на 465 порт
Здравствуйте.
Я не специалист во всех этих премудростях.
Но требуется в атоматическом режиме отправлять почту на mail.ru
Все ключи-настройки проверил, всё-равно ошибка
Error: Not a socket.
Error: Not a socket.
Вопрос: на самом сервере (mail.ru) надо что-то настраивать??
Здравствуйте, возможно вы ошиблись в настройках,
я глянул ящик майл.ру, но не проверял работу с ним, в настройках ничего вроде нету особого чтобы отправлять.
Вот мануал, проверьте, правильно ли вы задаете smtp сервер
help.mail.ru/mail-help/mailer/popsmtp
Здравствуйте! Все сделал — все работает. Осталось только прикрепить файл — не подскажете как?! И тогда эта программка будет высылать на емейл бэкап базы!
Так все! Вместе «-attachi» пишем «-attach» ! Супер! Спасибо вам большое!
Здравствуйте, пожалуйста
-attach это есть нужно прикрепить бинарный файл, а если текстовый, то как у меня написано, проверил только что в хелпе блата
-attach : attach binary file(s) to message (filenames comma separated) : attach text file(s) to message (filenames comma separated) : attach text file(s) as INLINE (filenames comma separated)
-attacht
-attachi
Что-то перестало работать.. Говорит:
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.
Пароль от почты не меняли.
Что-то перестало работать.. Говорит:
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.
Пароль от почты не меняли.
MailSend — SMTP client
кому нужно — еще один вариант. Получилось через mail.ru
Спасибо, Али