The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Краткое описание протокола SMTP (smtp mail)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: smtp, mail,  (найти похожие документы)
From: Александр Бельбаков Newsgroups: http://codenet.ru/ Date: Mon, 20 Sep 2004 18:21:07 +0000 (UTC) Subject: Краткое описание протокола SMTP Оригинал: http://codenet.ru/webmast/smtp.php Описание протокола SMTP Александр Бельбаков, http://HiProg.com/vb/ "Технологии программирования" Введение Основная задача протокола SMTP (Simple Mail Transfer Protocol) заключается в том, чтобы обеспечивать передачу электронных сообщений (почту). Для работы через протокол SMTP клиент создаёт TCP соединение с сервером через порт 25. Затем клиент и SMTP сервер обмениваются информацией пока соединение не будет закрыто или прервано. Основной процедурой в SMTP является передача почты (Mail Procedure). Далее идут процедуры форвардинга почты (Mail Forwarding), проверка имён почтового ящика и вывод списков почтовых групп. Самой первой процедурой является открытие канала передачи, а последней - его закрытие. Команды SMTP указывают серверу, какую операцию хочет произвести клиент. Команды состоят из ключевых слов, за которыми следует один или более параметров. Ключевое слово состот из 4-х символов и разделено от аргумента одним или несколькими пробелами. Каждая командная строка заканчивается символами CRLF. Вот синтаксис всех команд протокола SMTP (SP - пробел): HELO <SP> <domain> <CRLF> MAIL <SP> FROM:<reverse-path> <CRLF> RCPT <SP> TO:<forward-path> <CRLF> DATA <CRLF> RSET <CRLF> SEND <SP> FROM:<reverse-path> <CRLF> SOML <SP> FROM:<reverse-path> <CRLF> SAML <SP> FROM:<reverse-path> <CRLF> VRFY <SP> <string> <CRLF> EXPN <SP> <string> <CRLF> HELP <SP> <string> <CRLF> NOOP <CRLF> QUIT <CRLF> Обычный ответ SMTP сервера состоит из номера ответа, за которым через пробел следует дополнительный текст. Номер ответа служит индикатором состояния сервера. Отправка почты Первым делом подключаемся к SMTP серверу через порт 25. Теперь надо передать серверу команду HELLO и наш IP адрес: C: HELLO 195.161.101.33 S: 250 smtp.mail.ru is ready При отправке почты передаём некоторые нужные данные (отправитель, получатель и само письмо): C: MAIL FROM:<drozd> 'указываем отправителя S: 250 OK C: RCPT TO:<drol@mail.ru.> 'указываем получателя S: 250 OK указываем серверу, что будем передавать содержание письма (заголовок и тело письма) C: DATA S: 354 Start mail input; end with <CRLF>.<CRLF> передачу письма необходимо завершить символами CRLF.CRLF S: 250 OK C: From: Drozd <drozd@mail.ru.> C: To: Drol <drol@mail.ru.> C: Subject: Hello между заголовком письма и его текстом не одна пара CRLF, а две. C: Hello Drol! C: You will be die on next week! заканчиваем передачу символами CRLF.CRLF S: 250 OK Теперь завершаем работу, отправляем команду QUIT: S: QUIT C: 221 smtp.mail.ru is closing transmission channel > Другие команды * SEND - используется вместо команды MAIL и указыает, что почта должна быть доставлена на терминал пользователя. * SOML, SAML - комбинации команд SEND или MAIL, SEND и MAIL соответственно. * RSET - указвает серверу прервать выполнение текущего процесса. Все сохранённые данные (отправитель, получатель и др) удаляются. Сервер должен отправить положительный ответ. * VRFY - просит сервер проверить, является ли переданный аргумент именем пользователя. В случае успеха сервер возвращает полное имя пользователя. * EXPN - просит сервер подтвердить, что переданный аргумент - это список почтовой группы, и если так, то сервер выводит членов этой группы. * HELP - запрашивает у сервера полезную помощь о переданной в качестве аргумента команде. * NOOP - на вызов этой команды сервер должен положительно ответить. NOOP ничего не делает и никак не влияет на указанные до этого данные.

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

Обсуждение [ RSS ]
  • 1, Yevhen (?), 18:40, 01/08/2006 [ответить]  
  • +/
    Обшибочка вышла...
    В параграфе "Отправка почты" вместо HELLO должно быть HELO...
    Кстати, в SMTP IP отправителя в команде HELO указывать необязательно.
     
  • 2, Гость (?), 14:02, 09/11/2006 [ответить]  
  • +/
    Да что же это вы одну и ту же статью друг у друга передираете?
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру