Пятница, 03 Март 2006 | (16108)
Посылка e-mail обычно происходит из каких нибудь программ, так называемых e-mail client, к примеру Microsoft Outlook. Иногда встаёт задача, посылать сообщения не используя e-mail client. В данной статье, будет рассказано о нескольких способах посылки сообщений без использования каких либо клиентов. Многие администраторы, при настройке того или иного Майл Сервера, в качестве теста используют возможность посылки сообщений прямо через Telnet. Вы так-же можете послать e-mail из VBS script или используя ASP код (code). Также есть несколько довольно известных tools, такие как MAPISend и очень популярный файл, под интересным названием Blat :), которые позволяют посылать email из командной строки (command line).
Рассмотрим более подробно несколько возможных вариантов...
Pickup Directory
Это наверное простейший способ посылки e-mail не используя никаких дополнительных клиентов. Базируется он на описание формата стандартного почтового сообщения, описанного в RFC 822. Хочу заметить, что данный способ был проверен на SMTP, входящем в стандартную установку Windows 2000 или 2003. Всё, что надо сделать, создать текстовый файл в нужном формате и положить этот файл в Pickup директорию на вашем SMTP сервере. Как только файл попадёт в эту директорию, он будет отправлен адресату. Когда вы устанавливаете SMTP service на Windows 2000 или 2003 сервер, создаётся директория Pickup в C:\Inetpub\Mailroot.
Посмотрим на пример.
Date: 27 Nov 2005 0852 GMT
To: “Тех. Поддержка”
Этот адрес e-mail защищен от спам-ботов. Чтобы увидеть его, у Вас должен быть включен Java-Script
From: "Пелекан”
Этот адрес e-mail защищен от спам-ботов. Чтобы увидеть его, у Вас должен быть включен Java-Script
Subject: Спасибо за помощь
Добрый день,
Хочу сказать большое спасибо за Вашу помощь нашему Проекту, N-Admin.com.
Пелекан
Теперь сохраним наше сообщение в текстовом файле и поместим его (файл) в Pickup директорию. Результат... На адрес
Этот адрес e-mail защищен от спам-ботов. Чтобы увидеть его, у Вас должен быть включен Java-Script
будет отправленно почтовое сообщение. Имя файла не имеет значение, так-как сразу же после отправки, файл
будет удалён. Самое интересное, что вы даже можете использовать HTML code в вашем e-mail. Использование HTML требует, что бы
был указана MIME версия, content type и encoding. Вот пример:
Date: 27 Nov 2005 0852 GMT
To: “Тех. Поддержка”
Этот адрес e-mail защищен от спам-ботов. Чтобы увидеть его, у Вас должен быть включен Java-Script
From: "Пелекан”
Этот адрес e-mail защищен от спам-ботов. Чтобы увидеть его, у Вас должен быть включен Java-Script
Subject: Спасибо за помощь
MIME-Version: 1.0
Content-Type: text/html; charset=”windows-1251”
Content-Transfer-Encoding: quoted-printable
Добрый день,
<b>Хочу сказать большое спасибо за Вашу помощь нашему Проекту, N-Admin.com.</b>
Пелекан
Если вы сделали всё правильно, то адресат получит от вас e-mail сообщение. Если же, что то не правильно, то ищите свой файл в директории Badmail.
Ещё один способ.
MAPISend и Blat
MAPISend.exe файл, который запускается в command line. Файл находится в Exchange Server 2000 Resource Kit. Вы можете использовать MAPISend для подключения к mailbox, расположенному на Exchange server, и посылки email сообщения. Есть несколько основных ключей, которые необходимо использовать при работе с MAPISend.exe
* -u используется для определения профайла
* -r определяется e-mail адрес куда надо отправить сообщение
* -s определяется subject (тема) e-mail сообщения
* -m определяется само e-mail сообщение
Для того, что бы MAPISend работал, MAPI profile должен быть создан компьютере, с которого отправляется e-mail. Пример:
C:\> MAPISend –u “Exchange Profile” –r
Этот адрес e-mail защищен от спам-ботов. Чтобы увидеть его, у Вас должен быть включен Java-Script
–s “Спасибо за помощь” –m “Добрый день, Хочу сказать большое спасибо за Вашу помощь нашему Проекту, N-Admin.com. Пелекан”
Просто :)?
Если у вас нет Exchange Server 2000 Resource Kit, и вы не знаете где это взять :), то есть ещё один вариант, называемый Blat. Наверное програмер, который писал эту программку, очень хорошо знал русский язык :). Blat это бесплатная, command line, SMTP mailer программа, по своей функциональности, Blat очень похож на MAPISend, но Blat не требует наличие mail profil-а на компьютере. Несколько важных ключей, необходимых для работы:
* -t определяет e-mail адрес отправителя
* -r определяет e-mail адрес получателя
* -subject Определяется тема сообщения (subject)
Огромная разница между MAPISend и Blat, в том, что тело самого сообщение которое отправляется через Blat, берётся из текстового файла. Пример использования.
C:\> Blat.exe body.txt –t
Этот адрес e-mail защищен от спам-ботов. Чтобы увидеть его, у Вас должен быть включен Java-Script
–f
Этот адрес e-mail защищен от спам-ботов. Чтобы увидеть его, у Вас должен быть включен Java-Script
–subject “Спасибо за помощь”
Идём дальше. Сейчас посмотрим как посылать сообщеия через Telnet.
Знание того, как посылать SMTP команды через telnet не раз помогали мне сэкономить немало времени при тестировании firewall-ов и проверки Майл Серверов, к примеру на Open Relay. Все знают, что Open Relays не самое лучшее, что есть в этой жизни. Спамеры спят и видят, где бы найти маил сервер с открытым open relay. И если ваш mail server достаточно долго будет работать как open relay, то есть все шансы, что вы очень быстро попадёте в чёрный список и вашу почту многие майл сервера будут просто игнорировать. А вот вытащить ваш маил сервер из чёрного списка довольно трудно.
Для того, что бы посылать e-mail сообщения через telnet необходимо знать несколько вещей, а именно IP адрес почтового сервера или его полное имя (fully qualified domain name), номер порта на котором работает SMTP (обычно это TCP 25) ну и конечно же, несколько SMTP команд. Давайте рассмотрим пример. Для подключения набираем следующую команду:
C:\> telnet mail.domain.com 25
Вы должны получить, что-то похожее:
220 mail.n-admin.com ESMTP Server X1
Теперь надо "поздороваться" с сервером. Делается это командой ehlo. Сервер должен ответить сообщением похожим на это:
250-mail.n-admin.com says hello
250-SIZE 0
250-8BITMIME
250-DSN
250-ETRN
250-AUTH LOGIN CRAM-MD5
250-AUTH=LOGIN
250 EXPN
Есть необходимость сказать серверу от какого имени должно быть отослано сообщение. Делается это вот так:
mail from:
Этот адрес e-mail защищен от спам-ботов. Чтобы увидеть его, у Вас должен быть включен Java-Script
Если вы имеете нужные права, то вы должны увидеть: 250 ok
Что-бы сказать серверу кому должно быть отослано ваше сообщение, набираем:
rcpt to:
Этот адрес e-mail защищен от спам-ботов. Чтобы увидеть его, у Вас должен быть включен Java-Script
и получаем следующее сообщение:
250 ok its for <
Этот адрес e-mail защищен от спам-ботов. Чтобы увидеть его, у Вас должен быть включен Java-Script
>
Для того, что бы начать вводить текст вашего сообщения, набираем команду:
data
Серер должен сказать, что то похожее на это:
354 ok, send it; end with <CRLF>.<CRLF>
Теперь вводим наше сообщение:
Добрый день, Хочу сказать большое спасибо за Вашу помощь нашему Проекту, N-Admin.com. Пелекан.
.
Что-бы отослать сообщение, надо поставить точку в самом конце вашего сообщения. Причём, обратите внимание, что финальная точка стоит на новой строке. Если всё ОК, то вы должны получить сообщение:
250 Message queued
Многие администраторы, из соображений безопасности, выключают возможность работы с маил сервером через Telnet, так, что имейте это ввиду.
Если не устали, то продолжим.
ASP и CDONTS.
Существует множество способов для отсылки сообщении используя VBS script. Если на Вашем компьютере установлен Outlook, то можно послать e-mail через MAPI. С другой стороны, если вы имеете SMTP service компонент установлен на IIS, можно воспользоваться объектом CDONTS.NewMail. Collaboration Data Objects для Windows NT Server (CDONTS) присутствует на всех версиях IIS, за исключением IIS 5.1 в Windows XP.
Используя CDONTS и небольшой ASP, можно легко посылать e-mail сообщения прямо с веб страницы (webpage). Вот небольшой пример:
<%
'Dim variable for the CDONTS NewMail Object
Dim objCDONTSMail
'Create the e-mail server object
Set objCDONTSMail = Server.CreateObject("CDONTS.NewMail")
'Specify who the message is from
objCDONTSMail.From = "
Этот адрес e-mail защищен от спам-ботов. Чтобы увидеть его, у Вас должен быть включен Java-Script
"
'Specify who the message is being sent to
objCDONTSMail.To = "
Этот адрес e-mail защищен от спам-ботов. Чтобы увидеть его, у Вас должен быть включен Java-Script
"
'Specify the subject of the message
objCDONTSMail.Subject = "Спасибо за помощь"
'Specify the message format (0=HTML 1=Text)
objCDONTSMail.BodyFormat = 0
'Specify the message format (0=MIME 1=Text)
objCDONTSMail.MailFormat = 0
'Specify the Message body contents
objCDONTSMail.Body = "<h2>Hi Fred</h2><br><b>Добрый день, Хочу сказать большое спасибо за Вашу помощь нашему Проекту, N-
Admin.com.</b><br><br>Пелекан"
'Send the message
objCDONTSMail.Send
'Close the server object
Set objCDONTSMail = Nothing
%>
Ну вот, вроде и всё, о чем хотел рассказать. Думаю, что приведённые в этой статье примеры, помогут вам в вашей повседневной жизни Администратора.
В статье использованы материалы с сайта http://thelazyadmin.com, а именно автора Rodney Buike.
|