Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Сетевые технологии > Как с помощью telnet отправить письмо


Автор: neosapient 15.10.2006, 18:57
Как с помощью telnet отправить письмо smile 
Вот часть статьи: http://rsdn.ru/article/qna/inet/email.xml#EEG  smile 
Пытаюсь отправить согласно примера на mail.ru, но не работает.

Автор: neosapient 15.10.2006, 19:37
Так в командной строке вызываю 
"telnet"
Далее 
"open smtp.mail.ru 25"

Затем  
"HELO mail.ru"
Получаю "ОК"

"MAIL FROM:<[email protected]>"
Получаю "ОК"

И наконец
"RCPT TO:<[email protected]>"
выдает ошибку 550 - почтовый ящик не доступен, что за баг   smile 

Автор: Fin 15.10.2006, 20:06
Насколько я знаю, сначало нужно залогинится на сервере, а затем уже можно посылать команды ему. Вообшем читать надо RFC по протоколу почты.

Автор: neosapient 15.10.2006, 20:51
RFC 821 я прочел

Цитата

сначало нужно залогинится на сервере

КАК smile 
 smile 
 smile 

Автор: Fin 16.10.2006, 00:20
Я сейчас подсмотрел как делает ThunderBird
AUTH CRAM-MD5 Строчка_зашифрованного_пароля_c_помошью_MD5

Автор: ZeeLax 16.10.2006, 06:15
neosapient, на mail.ru в разделе помощь о настройке почтовых программ почитай.

Автор: ptr 16.10.2006, 06:48
Цитата(neosapient @  16.10.2006,  00:51 Найти цитируемый пост)
КАК

Читай RFC2554.

Автор: neosapient 16.10.2006, 09:22
Цитата

на mail.ru в разделе помощь о настройке почтовых программ почитай

http://www.mail.ru/pages/help/79.html

-----
Прочел ничего нового нет
-----

Та-ак, не понял, что произошло, но почти стало работать.
В командной строке вызываю 
"telnet"
Далее 
"open smtp.mail.ru 25"

Затем  
Код

220 mail.ru ESMTP Mon, 16 Oct 2006 10:12:54 +0400

HELO mail.ru
250 mx2.mail.ru Hello mail.ru [89.110.17.106]

MAIL FROM:<[email protected]>
250 OK

RCPT TO:<[email protected]>
250 Accepted

DATA
354 Please start mail input.

Test string
.
250 Mail queued for delivery.

QUIT
221 Closing connection. Good bye.

Подключение к узлу утеряно.

Нажмите любую клавишу...


Теперь объясните мне дураку, почему на почтовый ящик [email protected] письмо так и не доходит.

 smile 

Автор: neosapient 16.10.2006, 09:57
Так, теперь начал ругаться антивир (хоть я его и выключаю)
user posted image
(вообще этот рисунок хоть кто-нибудь видит, лично я нет)
Вот ссылка на рисунок, если он не виден
http://neosapient.narod.ru/problem/antivir1.JPG

----
Просматрел быстренько ftp://ftp.rfc-editor.org/in-notes/rfc2554.txt
Ничего не понятно, ох уж мне эта тех документация.
Пошел читать по второму кругу (внимательно)...

----
А на русском+человеческом RFC2554 есть smile 


----
Fin
Цитата

AUTH CRAM-MD5 Строчка_зашифрованного_пароля_c_помошью_MD5

поясни...

Автор: ptr 16.10.2006, 12:24
Цитата(neosapient @  16.10.2006,  13:57 Найти цитируемый пост)
А на русском+человеческом RFC2554 есть

Насчёт человеческого не знаю, но на русском http://www.tigir.com/rfc2554.htm.

Цитата(neosapient @  16.10.2006,  13:57 Найти цитируемый пост)
Так, теперь начал ругаться антивир (хоть я его и выключаю)(вообще этот рисунок хоть кто-нибудь видит, лично я нет)

Я вижу smile . Что за антивирь то?

Автор: MuToGeN 16.10.2006, 12:35
Цитата(neosapient @  15.10.2006,  19:37 Найти цитируемый пост)
что за баг

Это не баг, а защита от спамеров.

Автор: neosapient 16.10.2006, 12:41
В паралельной http://forum.vingrad.ru/index.php?showtopic=116427&st=0&unread=&#entry889949, tnt17 дал ссылку на статью
http://wasm.ru/article.php?article=simplesmtp 
Пример в конце статьи работает  smile  smile  smile 
Буду разбираться...

Автор: neosapient 16.10.2006, 22:42
Так люди - не расходимся.
Хоть у меня и есть конкретные успехи http://forum.vingrad.ru/index.php?showtopic=116427&view=all - неокончена эта.
Хочу записать bat`ник для отправки писем.
Вот мой текст
Код

telnet
open smtp.mail.ru 25
EHLO mail.ru
AUTH LOGIN
dGVzdF9fXzAwMDAz
dGVzdF9fXzAwMDAz
MAIL FROM:
RCPT TO:
DATA
asdf
.
QUIT
pause

Но почему то при открытии telnet все подвисает.
Как исправить ситуацию

Автор: Fin 16.10.2006, 22:54
У тебя не правильный ход мыслей. Смотри в сторону перенаправления потоков.

В Батники команды выполняются одна за одной. Пока не выйдеш с телнета, команда open smtp.mail.ru 25 не будет выполнена.

Как я помню, весь ввод записывается в отдельный файл, затем самом батнике пишется так:
telnet <text.txt

Автор: neosapient 17.10.2006, 17:04
Попробовал, но опять что-то не так.
Попробовал не работат (см. приложение)
Исправьте кто может.

Автор: neosapient 17.10.2006, 18:01
Люди еще вопросик.
Вот я шлю на mail.ru кому-то письмо ([email protected])
В инструкции по отправке сказано - пишите на smtp.mail.ru, порт 25

Теперь я шлю на rambler.ru кому-то письмо ([email protected])
В инструкции по отправке сказано - пишите на maild.rambler.ru, порт 25

Но тут у меня закрались сомнения.
Как почтовая  программа определяет "префикс" (smtp. или скажем maild.)?
1) Допустим в почтовом клиенте есть некая база данных с полными путями.
Но тогда я не верю что она полная, врядли наш производитель софта из села Гадюкино включит в свою базу данных все почтовые ящики в каком-нибудь Занзебаре. Эту версию я отметаю.
2) Дотустим есть некая глобальная база данных в инете. Но тогда управляющий этой базой данных врядли будет беспокоиться, о включении самопального почтового ящика нашего программиста из села Гадюкино. И если наш программист не знает о существовании такой базы данных, то на его почтовый ящик не будут приходить письма. Мне такой расклад не нравиться - отвергаю.
3) Возможно есть некий стандартный сервис - я спрашиваю у mail.ru:
"А здесь есть почта, можно точный адресок?"
В ответ:
"Да есть - smtp.mail.ru"
или
" Нет, нету"
Эта идея имеет право на жизнь, но может оказаться проблематичной в реализации. 
И все же если так и есть - Подскажите так ли это? И что можно почитать?
4) Для всех почтовиков справедливо - smtp.somehost.org
Я попробовал через telnet так подключиться:
- на rambler.ru - open smtp.rambler.ru 25 -> меня перекинуло на maild.rambler.ru (ура)
- на e-mail.ru - open smtp.e-mail.ru 25 -> клинит (плохо)
Такой вариант тоже может подойти, но почему то не для всех.
Прав ли я что такой метод используется?
Возможно есть другой стандартный префикс?


Автор: neosapient 17.10.2006, 18:23
...

Автор: ZeeLax 18.10.2006, 06:12
Советую почитать таки книжечку по компьютерным сетям. И не одну.
Если кратко:
1. Почтовая программа ничего не определяет. Пользователем явно задаётся SMTP/POP3/IMAP сервер для отправки/приёма сообщений.
2. SMTP-серверы определяю адреса друг друга, выполня запросы MX записей к системе DNS.

Автор: neosapient 18.10.2006, 22:13
Цитата

SMTP-серверы определяю адреса друг друга, выполня запросы MX записей к системе DNS


По подробнее, как это посмотреть через telnet.

Ну допустим я хочу отправить письмо через на [email protected]
То есть мне надо узнать програмно что я должен коннектиться через 25 порт к smtp.mail.ru
По логике мне надо сначала обратиться к mail.ru
Т.е. я подключаюсь через какой то порт к mail.ru

Через какой порт я должен подключаться, чтоб в дальнешем получить нужную мне информацию?
Какова дальнешая последовательность действий?
Скажите для приема почты (POP3) все тот же префикс или он может быть иной?
Если иной какая методика его получения?

Часики тикают, ответы нужны к затрашнему вечеру (четвергу).

Автор: dumb 18.10.2006, 22:36
для того, чтобы послать письмо на vasya@xxx.ru, вовсе не обязательно напрямую соединяться с smtp-сервером xxx.ru(да и не пустят тебя, потому как авторизация нужна как правило). необходимо(и вполне достаточно) соединиться с smtp-сервером, который "держит" твой адрес. т.е. чтобы отправить письмо от [email protected](отправитель) для [email protected](получатель), надо соединиться с сервером yyy.ru и сказать ему отправить письмо. сервер сам перешлет твое творение на xxx.ru, где его успешно сольет vasya.

Автор: ZeeLax 19.10.2006, 06:25
Цитата(neosapient @  19.10.2006,  01:13 Найти цитируемый пост)
Цитата

SMTP-серверы определяю адреса друг друга, выполня запросы MX записей к системе DNS


По подробнее, как это посмотреть через telnet.

Ты вроде не SMTP-сервер smile

Автор: neosapient 19.10.2006, 08:19
Цитата

Ты вроде не SMTP-сервер  

Я вроде SMTP-клиент.
Есть, например pochta.ru какой префикс там я не знаю.
Вопрос : какую последовательность действий надо производить, чтобы автоматезировать процесс получения префикса, чтобы не лазить по сайту и не искать соответствующие данные.

Цитата

необходимо(и вполне достаточно) соединиться с smtp-сервером, который "держит" твой адрес. т.е. чтобы отправить письмо от [email protected](отправитель) для [email protected](получатель), надо соединиться с сервером yyy.ru и сказать ему отправить письмо. сервер сам перешлет твое творение на xxx.ru, где его успешно сольет vasya. 

Спасибо, в принципе мне этой отговорки для доклада хватит (доклад по работе SMTP, а не по написанию полноценного почтового клиента), но можно ли последовательность действий?

Автор: ZeeLax 19.10.2006, 08:39
Цитата(neosapient @  19.10.2006,  11:19 Найти цитируемый пост)
Вопрос : какую последовательность действий надо производить, чтобы автоматезировать процесс получения префикса, чтобы не лазить по сайту и не искать соответствующие данные.

Во-первых - это не "префикс". Во-вторых, клиенту предоставляются адреса SMTP и POP3/IMAP серверов, дабы он знал куда подключатся.

Автор: neosapient 19.10.2006, 10:26
Цитата

Во-первых - это не "префикс".

А как это правильно назвать? Просвети, пожалуйста.

Цитата

Во-вторых, клиенту предоставляются адреса SMTP и POP3/IMAP серверов, дабы он знал куда подключатся. 

Как (в каком виде) "клиенту предоставляются адреса SMTP и POP3/IMAP серверов". Как выглялет процесс их получения...

Автор: ZeeLax 19.10.2006, 14:08
Цитата(neosapient @  19.10.2006,  13:26 Найти цитируемый пост)
А как это правильно назвать? Просвети, пожалуйста.

это имя хоста smile

Цитата(neosapient @  19.10.2006,  13:26 Найти цитируемый пост)
Как (в каком виде) "клиенту предоставляются адреса SMTP и POP3/IMAP серверов". Как выглялет процесс их получения... 

В виде полных имён хостов (или IP-адресов) и номеров портов. Процесс получения различный, от "сказать по телефону" до "написать краской на заборе". Если выдаётся хостнэйм, то его надо с помощью DNS преобразовать в IP-адрес и т.п... читайте книжки smile

Автор: neosapient 19.10.2006, 16:04
Книжки бывают разные.
Хороших (понятных) и умных практически нет.  smile 
Обычно либо то, либо другое? Проще посоветую хорошую и умную книгу.
А то мне твое последние высказывание про краску на заборе вообще кажется не к месту.
Если все владельцы хостов с почтовиками будут о себе писать на заборе, то тут нужен не забор а Великая Китайская Стена.
Ну не верю я, что владельцы из mail.ru обзванивали всех владельцев хостов на территории Чили, Мексики, Занзибара или Вьетнама, в поисках точных mail-хостов. 
Нет, тут должён быть другой механизм.

Автор: ZeeLax 20.10.2006, 06:52
Цитата(neosapient @  19.10.2006,  19:04 Найти цитируемый пост)
mail.ru обзванивали всех владельцев хостов на территории Чили, Мексики, Занзибара или Вьетнама, в поисках точных mail-хостов. 

Зачем им это делать?
Вкратце, алгоритм (в упрощенном виде). Действующий лица:
Клиент1, Сервер1, Клиент2, Сервер2.
1. Клиент1, имеющий почтовый адрес [email protected], шлёт письмо своему другу на [email protected]. Для этого, он соединяется с SMTP-сервером mail.ru - smtp.mail.ru(Сервер1). Адрес smtp.mail.ru он получает на сайте, после регистрации ящика.
2. Сервер1, видя по домену (gmail.com), что почта предназначена не локальному адресату, пытается узнать, как добраться до сервера получателя.
3. Для этого, он осуществляет запрос на наличие MX записей для домена gmail.com к системе DNS. Допустим в этот раз Сервер1 получит ответ от системы DNS это адрес gmail-smtp-in.l.google.com (это и будет адрес Сервера2).
4. Сервер1 подключается (опять же, по протоколу SMTP) к Серверу2 и переправляет ему письмо Васи для Пети.
5. Сервер2 определяя адрес получателя как локальный, кладёт письмо в ящик Пети.
Вопросы?
Цитата(neosapient @  19.10.2006,  19:04 Найти цитируемый пост)
Если все владельцы хостов с почтовиками будут о себе писать на заборе, то тут нужен не забор а Великая Китайская Стена.

Ты весь топик путаешь друг с другом серверы и клиентов. Взаимодействие клиента с SMTP-сервером это одно, а вот взаимодействие SMTP-серверов друг с другом - это другое, хоть и похоже это всё до безобразия (протокол то один).
P.S. Есть такой чувак - http://ru.wikipedia.org/wiki/%D0%A2%D0%B0%D0%BD%D0%B5%D0%BD%D0%B1%D0%B0%D1%83%D0%BC%2C_%D0%AD%D0%BD%D0%B4%D1%80%D1%8E. Им написана книга - "Компьютерные сети". Вот пример хорошей и умной книжки.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)