Попробуй Telnet
Отправка почты
Для отправки почты служит протокол smtp (simple mail trаnsfer protocol). Соответственно его поддерживают почтовые сервера. То есть, чтобы использовать его, необходимо для начала подсоединиться к такому серверу. Для этого нам необходимо знать адрес сервера. Где брать адреса smtp-серверов будет описано в следующих статьях, но в принципе это необязательно, достаточно знать хоть один стабильно работающий сервер (например: smtp.mail.ru). Стандартный порт smtp-сервера: 25.
Вот и все. Известна вся необходимая информация, можно подсоединяться... Для этого как многие уже догадались, будем использовать программу Telnet.
Программа Telnet входит в поставку всех операционных систем которые поддерживают tcp/ip. Так что будьте уверены - она у вас есть.
Для пользователей Windows: Start(Пуск)->Run(Выполнить).
В окошке набираем: telnet smtp.mail.ru 25
Должна запуститься программа и сразу подсоединиться к серверу. Об удачном подключении будет свидетельствовать сообщение от сервера (что-нибудь в таком роде):
220 mx7.port.ru ESMTP MAIL.RU Mon, 2 Apr 2001 03:56:38 +0400
Это сообщение говорит нам что сервер готов к работе. Теперь можно вводить команды.
Для начала можно ввести команду HELP. На эту команду сервер ответит:
214-Commands supported:
214- HELO EHLO MAIL RCPT DATA
214 NOOP QUIT RSET HELP
Как вы догадались - это список команд, которые поддерживает сервер. Теперь разберемся, что делает каждая из них. Сделаем это на примере отправки сообщения.
Для начала нужно представиться серверу, набираем команду HELO [domain]. Domain - это имя домена, но для нас это непринципиально, вместо domain пишем все что угодно:
HELO 12345
ответ сервера:
250 mx7.port.ru Hello dialup16-45.iptelecom.net.ua [212.9.229.237]
Обратите внимание: сервер показал нам наше имя хоста и ip-адрес (dialup16-45.iptelecom.net.ua [212.9.229.237]). Эта информация потом будет добавлена в заголовок письма и получатель письма если его заинтересует дополнительная информация может запросто увидеть ее, заглянув в свойства письма. В следующих статьях будут описаны различные способы скрытия или подделки ip-адреса. А сейчас продолжим... Следующая команда - MAIL, эта команда обязательна, используем ее для указания адреса отправителя. Синтаксис:
MAIL FROM: siraxxx@mail.ru
ответ сервера:
250 <siraxxx@mail.ru> is syntactically correct
Обратный адрес (адрес отправителя) можно придумать и указать любой от фонаря.
Тепрь необходимо указать адрес получателя сообщения:
RCPT TO: siraxxx@mail.ru
ответ сервера:
250 <siraxxx@mail.ru> verified
Как видите, я указал свой собственный адрес, т.е. письмо, прейдет мне. Я вам рекомендую сделать также, тогда вы будете уверены, что все сделали правильно - после того, как получите свое собственное сообщение. Я имею ввиду что для проверки указывайте свой почтовый адрес, а не мой

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

.
И последняя основная команда:
DATA
ответ сервера:
354 Enter message, ending with "." on a line by itself
Это вход в режим набора письма. Здесь действуют другие законы, здесь нельзя вводить команды smtp. чтобы закончить ввод и выйти обратно в командный режим, нужно нажать [Enter] (перейти на новую строку), набрать символ [.] (просто ввести точку без скобок) и опять нажать [Enter]. Проще говоря, конец письма - это ввод точки с новой строки.
А теперь о теле письма.
Можно конечно сразу после входа в режим набора сообщения, начинать набирать текст. Но не спешите, такое сообщение будет даже без поля Subject (то есть без темы). Хотя знать стоит только об одном поле: [reply-to].
После того как вы набрали команду DATA, не спешите набирать текст сообщения, а для начала укажите поле reply-to:
reply-to: dr_stark@chat.ru
Зачем это поле?
Дело в том, что это поле не команда smtp, а просто сообщение для почтового клиента (так сказать вспомогательная информация, типа того же subject). Многие почтовые клиенты показывают в пришедшем письме только адрес отправителя указанный командой [mail from] а адрес указанный в поле [reply-to] не показывает. Но если ответить на такое сообщение (например: нажать кнопку ответить) ответ пойдет по адресу указанному в поле [reply-to]
Дополнительная информация.
Если вы хотите, чтобы в отправленных вами письмах присутствовала "тема", то после ввода поля [reply-to], введите поле [subject].
subject: subj of message
после этого можете приступать к набору мессаги. Когда закончите - вводите точку с новой строки, и вы вернетесь в командный режим. Там вам сервер сообщит, что ваше сообщение принято:
250 OK id=11oivl-0000hm-00
Теперь можно ввести еще сообщения или отключиться, набрав команду QUIT.
Итого: как все это выглядит на экране Telnet-а (синий - ответы сервера, зеленый - ручной ввод):
220 mx7.port.ru ESMTP MAIL.RU Mon, 2 Apr 2001 03:56:38 +0400
HELP
214-Commands supported:
214- HELO EHLO MAIL RCPT DATA
214 NOOP QUIT RSET HELP
HELO 12345
250 mx7.port.ru Hello dialup16-45.iptelecom.net.ua [212.9.229.237]
MAIL FROM: siraxxx@mail.ru
250 is syntactically correct
RCPT TO: siraxxx@mail.ru
250 verified
DATA
354 Enter message, ending with "." on a line by itself
reply-to: dr_stark@chat.ru
subject: subj of message
this message content line1
content line2
.
250 OK id=14oivl-0000hm-00
QUIT
221 mx7.port.ru closing connection
Возможно, вы заметили, что все ответы сервера начинаются с какого-то числа. Это "коды ответов" сервера, полный список можно посмотреть здесь. Только эти цифры являются обязательными ответами, текст, который идет после них, предназначен для упрощения понимания, и на разных серверах этот текст может быть разным, а на некоторых, возможно, вообще могут быть цифры без текста.
Примечание. В основной своей массе smtp-серверы настроены на отправку сообщений только "своим" пользователям и не хотят отсылать незнакомым. Можно найти серверы, которые принимают сообщения для всех адресов.
Догадаться какой адрес smtp-сервера можно по e-mail адресу. Например, вам нужно отослать сообщение на адрес generaldirector@company.com, то вам следует воспользоваться smtp-сервером с адресом smtp.company.com или mail.company.com или просто company.com
Но как сам почтовый сервер узнает, куда следует слать письмо? Информация о маршрутизации почты храниться на DNS-среверах, "извлечь" эту информацию можно с помощью какой-нибудь утилиты, которая показывает MX-записи домена, например nslookup (входит в стандартную поставку unix-ов и Windows NT/2000)