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

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

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

Для этих целей как нельзя лучше подходит маленькая консольная программа для отправки почты - 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 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

14 Comments

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

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


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

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


 
Antonio
Мар 30, 2010 at 23:22

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


 
Flak
Июн 15, 2010 at 16:20

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

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


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

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


 
Antonio
Июн 24, 2010 at 22:19

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


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

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


 
Antonio
Сен 29, 2010 at 23:52

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


 
TiM
Окт 23, 2010 at 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 at 23:09

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


 
Antonio
Окт 23, 2010 at 23:12

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


 
TiM
Окт 24, 2010 at 12:41

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

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


 
Antonio
Окт 24, 2010 at 23:43

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


 
Anton
Ноя 5, 2010 at 9:37

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


 

Написать

Понравилась статья? Поддержим ее голосом!
Tags: , , ,

Подтвердите, что Вы не бот — выберите человечка с поднятой рукой:

Рейтинг блогов
Копирование информации с сайта возможно только с указанием прямой ссылки - http://nemcd.com (не закрытой тэгами nofollow и noindex)