Архив метки: script

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



    Для отправки электронной почты из командной строки в операционных системах семейства Windows стандартных средств не предусмотрено, однако можно воспользоваться программным обеспечением сторонних производителей, как, например, бесплатной утилитой Blat     Утилита не требует установки, просто скачайте архив и распакуйте его в какой-нибудь каталог. Если вы планируете использовать blat.exe в командных файлах, то имеет смысл поместить ее в каталог, используемый в путях поиска исполняемых файлов по умолчанию (задаваемых переменной окружения PATH), например, windowssystem32 .

При выполнении, blat.exe может использовать некоторые параметры — профиль , который хранится в реестре Windows. Профилей может быть несколько и один из них может использоваться в качестве профиля по умолчанию. Для создания профиля используется ключ -install при запуске blat.exe. 

blat.exe -install smtp.mail.ru test@mail.ru 3 25 profile1 test@mail.ru пароль 

параметры, следующие за «-install» должны располагаться именно в таком порядке: 

smtp.mail.ru — имя почтового сервера, через который будет выполняться отправка электронных писем
test@mail.ru — имя отправителя, которое будет отображаться в поле From: 
3 — число попыток повторный отправки письма при сбое соединения с сервером. 
25 — номер порта SMTP-сервера
profile1 — имя профиля утилиты
test@mail.ru — имя пользователя, которое будет использоваться при подключении к SMTP-серверу
пароль — пароль, используемый при подключении к SMTP-серверу

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



Записи blat.exe в реестре
Имя пользователя (строковый параметр Login) и пароль (Pwd) хранятся в кодировке Base64 . Если вместо имени профиля использовать символ «-«, то такой профиль будет использован в качестве профиля по умолчанию, т.е. профиля, настройки которого будут использоваться программой, если явно не задан конкретный профиль. 

blat.exe -install smtp.mail.ru test@mail.ru 3 25 — test@mail.ru 

Параметры Blat.exe хранятся в ветке реестра

[HKEY_LOCAL_MACHINESOFTWAREPublic Domain]
Профиль по умолчанию хранится в ветке
[HKEY_LOCAL_MACHINESOFTWAREPublic DomainBlat]
Настройки для конкретного профиля 
[HKEY_LOCAL_MACHINESOFTWAREPublic DomainBlatимя профиля]

Для получения встроенной справки программы используется ключ -h

blat -h — выдача справки на экран
blat -h > C:blathelp.txt — выдача справки в файл C:blathelp.txt

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

Отправка письма с использованием профиля по умолчанию получателю test@ab57.ru:

blat.exe -body «Hello World» -to test@ab57.ru
Параметр -body используется для формирования текста в теле письма. Если текст содержит пробелы, то заключается в двойные кавычки. Параметр -to задает адрес получателя. Остальные данные, необходимые для отправки берутся из профиля по умолчанию (адрес SMTP- сервера, имя пользователя, пароль и т.п.). В качестве текста тела письма можно использовать содержимое файла, указав его имя вместо параметра -body 

blat.exe C:mytext.txt -to test@ab57.ru
Для отправки электронного письма без текста используется имя пустого файла (а не ключ -body без параметров, когда будет ожидаться ввод текста письма с клавиатуры)

Если используется текст на русском языке, то нужно указать кодировку, поддерживающую символы кириллицы, для чего используется ключ —charset :

blat.exe -body «Текст на русском» -to test@ab57.ru -charset utf-8
Для отправки писем с вложением файлов используется ключ -attach 

blat.exe -body «Текст на русском» -to test@ab57.ru -charset utf-8 -attach c:boot.ini
Если тема письма не задана, то blat.exe использует в поле темы строку Contents of file: stdin.txt. Для подавления стандартной темы можно использовать ключ -ss. Поле темы, в этом случае будет пустым. Для указания нужного текста в поле темы используется ключ -subect 

blat -body «TEST на русском» -subject Важно! -to test@ab57.ru -charset utf-8 -attach c:boot.ini

Для отправки письма с настройками из конкретного профиля используется ключ -p имя профиля 

blat.exe -body «this is text» -p profile1 -to test@domain.ru 

Для получения списка профилей, хранящихся в реестре на данный момент используется ключ -profile

blat -profile

В ответ будет выдано 

Blat v2.6.2 w/GSS encryption (build : Feb 25 2007 12:06:19)
Profile(s) for all users of this computer —
SMTP: smtp.mail.ru «test@mail.ru» 1 25 ***** *****
SMTP: smtp.mail.ru «test321@mail.ru» 3 25 profile1 ***** *****
Первая строка, начинающаяся с SMTP: относится к профилю по умолчанию, вторая — к профилю с именем profile1

Для отправки электронного письма без использования какого-либо профиля, в командной строке blat.exe нужно задать все те данные, которые хранятся в профиле.

blat -body «TEST» -to test@yandex.ru -server smtp.mail.ru -f test@mail.ru -u test@mail.ru -pw пароль

Если какой-либо из параметров не задан, он будет взят из профиля по умолчанию.

-server — имя сервера SMTP
-f — почтовый адрес отправителя
-u — имя пользователя, используемое для подключения к SMTP-серверу (AUTH LOGIN)
-pw — пароль пользователя. 

Автор: Guest Rooms «Varnaflats.eu»
Дата публикации: 2017-07-28T21:46:00.000-07:00

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

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

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

Скачать программу Blat можно с официального сайта или с текущего. На момент написания статьи последней была версия 3.0.7. В архиве 2 папки: full — непосредственно сама программа и docs — документация по программе. Для установки необходимо скопировать содержимое папки full в «C:Windowssystem32» или в любую другую директорию, но в этом случае при вызове программы придется указывать путь к исполняемому файлу. Я в своем примере буду использовать второй вариант.
Есть возможность сразу создать профиль для отправки сообщений, для этого необходимо выполнить «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:blatblat.exe
rem *** Путь к файлу с текстом сообщения ***
set file_text=D:blatreport.txt
rem *** Путь к файлу для сохранения лога ***
set file_log=D:blatlog_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:
Blat_01
Можно доработать файл таким образом, чтобы адрес получателя и тема сообщения задавалась параметрами запуска. Вот содержимое такого bat-файла:
rem *** Путь к программе blat.exe ***
set file_blat=D:blatblat.exe
rem *** Путь к файлу с текстом сообщения ***
set file_text=D:blatreport.txt
rem *** Путь к файлу для сохранения лога ***
set file_log=D:blatlog_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%
И пример его запуска с параметрами:
Blat_02
Если получателей несколько, то при вызове утилиты можно указать текстовый файл с адресами получателей сообщения:
rem *** Путь к программе blat.exe ***
set file_blat=D:blatblat.exe
rem *** Путь к файлу с текстом сообщения ***
set file_text=D:blatreport.txt
rem *** Путь к файлу для сохранения лога ***
set file_log=D:blatlog_blat.txt
rem *** Путь к файлу с адресами получателей ***
set file_to=D:blatmail_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:blatsend_email.bat "Backup - OK"
rem Резервное копирование завершилось c ошибкой
call D:blatsend_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, есть возможность хранить настройки в файле или в реестре, прикреплять вложения в тело письма и многое другое. Я думаю, что взяв за основу предложенные выше файлы, вы сможете написать любой скрипт для отправки электронных сообщений при помощи этой замечательной утилиты.
Помогла ли Вам данная статья?

Автор: Guest Rooms «Varnaflats.eu»
Дата публикации: 2017-07-28T21:41:00.001-07:00

Как добавить Google Forms на страницу в Facebook

Рассмотрим пример, как очень быстро вставить форму, созданную в Google Forms, на Facebook-страницу. 

В каких случаях можно использовать формы Google на странице в Facebook?
  • Проведение опросов
  • Обратная связь и предложения
  • Продажа продукта на странице
  • Регистрация на мероприятия (например, вебинары)
  • Участие в конкурсе (с помощью форм можно создать что-то вроде викторины для подписчиков страницы)

Читать

Человекочитаемые русскоязычные имена директорий maildir.

Если с англоязычными именами директорий в maildir проблем нет — отображаются они в точно так-же как и в почтовом клиенте, то с русскоязычными именами всё не так просто. Например, директория «Отправленные» в maildir —  &BB4EQgQ,BEAEMAQyBDsENQQ9BD0ESwQ1-. Читать