| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Сетевые технологии > Как с помощью telnet отправить письмо |
| Автор: neosapient 15.10.2006, 18:57 |
| Как с помощью telnet отправить письмо Вот часть статьи: http://rsdn.ru/article/qna/inet/email.xml#EEG Пытаюсь отправить согласно примера на mail.ru, но не работает. |
| Автор: neosapient 15.10.2006, 19:37 |
| Так в командной строке вызываю "telnet" Далее "open smtp.mail.ru 25" Затем "HELO mail.ru" Получаю "ОК" "MAIL FROM:<sender@mail.ru>" Получаю "ОК" И наконец "RCPT TO:<geter@mail.ru>" выдает ошибку 550 - почтовый ящик не доступен, что за баг |
| Автор: Fin 15.10.2006, 20:06 |
| Насколько я знаю, сначало нужно залогинится на сервере, а затем уже можно посылать команды ему. Вообшем читать надо RFC по протоколу почты. |
| Автор: neosapient 15.10.2006, 20:51 | ||
RFC 821 я прочел
КАК |
| Автор: 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 |
Читай RFC2554. |
| Автор: neosapient 16.10.2006, 09:22 | ||||
http://www.mail.ru/pages/help/79.html ----- Прочел ничего нового нет ----- Та-ак, не понял, что произошло, но почти стало работать. В командной строке вызываю "telnet" Далее "open smtp.mail.ru 25" Затем
Теперь объясните мне дураку, почему на почтовый ящик geter@mail.ru письмо так и не доходит. |
| Автор: neosapient 16.10.2006, 09:57 | ||
| Так, теперь начал ругаться антивир (хоть я его и выключаю) (вообще этот рисунок хоть кто-нибудь видит, лично я нет) Вот ссылка на рисунок, если он не виден http://neosapient.narod.ru/problem/antivir1.JPG ---- Просматрел быстренько ftp://ftp.rfc-editor.org/in-notes/rfc2554.txt Ничего не понятно, ох уж мне эта тех документация. Пошел читать по второму кругу (внимательно)... ---- А на русском+человеческом RFC2554 есть ---- Fin
поясни... |
| Автор: MuToGeN 16.10.2006, 12:35 |
Это не баг, а защита от спамеров. |
| Автор: 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 Пример в конце статьи работает Буду разбираться... |
| Автор: neosapient 16.10.2006, 22:42 | ||
| Так люди - не расходимся. Хоть у меня и есть конкретные успехи http://forum.vingrad.ru/index.php?showtopic=116427&view=all - неокончена эта. Хочу записать bat`ник для отправки писем. Вот мой текст
Но почему то при открытии 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 кому-то письмо (somebody1@mail.ru) В инструкции по отправке сказано - пишите на smtp.mail.ru, порт 25 Теперь я шлю на rambler.ru кому-то письмо (somebody2@rambler.ru) В инструкции по отправке сказано - пишите на 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 | ||
По подробнее, как это посмотреть через telnet. Ну допустим я хочу отправить письмо через на somebody@mail.ru То есть мне надо узнать програмно что я должен коннектиться через 25 порт к smtp.mail.ru По логике мне надо сначала обратиться к mail.ru Т.е. я подключаюсь через какой то порт к mail.ru Через какой порт я должен подключаться, чтоб в дальнешем получить нужную мне информацию? Какова дальнешая последовательность действий? Скажите для приема почты (POP3) все тот же префикс или он может быть иной? Если иной какая методика его получения? Часики тикают, ответы нужны к затрашнему вечеру (четвергу). |
| Автор: dumb 18.10.2006, 22:36 |
| для того, чтобы послать письмо на vasya@xxx.ru, вовсе не обязательно напрямую соединяться с smtp-сервером xxx.ru(да и не пустят тебя, потому как авторизация нужна как правило). необходимо(и вполне достаточно) соединиться с smtp-сервером, который "держит" твой адрес. т.е. чтобы отправить письмо от pupkin@yyy.ru(отправитель) для vasya@xxx.ru(получатель), надо соединиться с сервером yyy.ru и сказать ему отправить письмо. сервер сам перешлет твое творение на xxx.ru, где его успешно сольет vasya. |
| Автор: ZeeLax 19.10.2006, 06:25 | ||
Ты вроде не SMTP-сервер |
| Автор: neosapient 19.10.2006, 08:19 | ||||
Я вроде SMTP-клиент. Есть, например pochta.ru какой префикс там я не знаю. Вопрос : какую последовательность действий надо производить, чтобы автоматезировать процесс получения префикса, чтобы не лазить по сайту и не искать соответствующие данные.
Спасибо, в принципе мне этой отговорки для доклада хватит (доклад по работе SMTP, а не по написанию полноценного почтового клиента), но можно ли последовательность действий? |
| Автор: ZeeLax 19.10.2006, 08:39 | ||
Во-первых - это не "префикс". Во-вторых, клиенту предоставляются адреса SMTP и POP3/IMAP серверов, дабы он знал куда подключатся. |
| Автор: neosapient 19.10.2006, 10:26 | ||||
А как это правильно назвать? Просвети, пожалуйста.
Как (в каком виде) "клиенту предоставляются адреса SMTP и POP3/IMAP серверов". Как выглялет процесс их получения... |
| Автор: ZeeLax 19.10.2006, 14:08 | ||
это имя хоста
В виде полных имён хостов (или IP-адресов) и номеров портов. Процесс получения различный, от "сказать по телефону" до "написать краской на заборе". Если выдаётся хостнэйм, то его надо с помощью DNS преобразовать в IP-адрес и т.п... читайте книжки |
| Автор: neosapient 19.10.2006, 16:04 |
| Книжки бывают разные. Хороших (понятных) и умных практически нет. Обычно либо то, либо другое? Проще посоветую хорошую и умную книгу. А то мне твое последние высказывание про краску на заборе вообще кажется не к месту. Если все владельцы хостов с почтовиками будут о себе писать на заборе, то тут нужен не забор а Великая Китайская Стена. Ну не верю я, что владельцы из mail.ru обзванивали всех владельцев хостов на территории Чили, Мексики, Занзибара или Вьетнама, в поисках точных mail-хостов. Нет, тут должён быть другой механизм. |
| Автор: ZeeLax 20.10.2006, 06:52 | ||||
Зачем им это делать? Вкратце, алгоритм (в упрощенном виде). Действующий лица: Клиент1, Сервер1, Клиент2, Сервер2. 1. Клиент1, имеющий почтовый адрес vasya@mail.ru, шлёт письмо своему другу на petya@gmail.com. Для этого, он соединяется с 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 определяя адрес получателя как локальный, кладёт письмо в ящик Пети. Вопросы?
Ты весь топик путаешь друг с другом серверы и клиентов. Взаимодействие клиента с 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. Им написана книга - "Компьютерные сети". Вот пример хорошей и умной книжки. |