|
Выход в интернет встроенного SMTP клиента |
|
|
|
May 4 2012, 06:06
|
Частый гость
 
Группа: Участник
Сообщений: 123
Регистрация: 22-03-10
Пользователь №: 56 115

|
Добрый день,
У меня собран девайс на ПИКе, добавил в него поддержку SMTP клиента для отсылкы всяких тревожных соообщений по электронной почте. Скачал халявный SMTP сервер для теста, поставил его себе комп. Всё проверил, всё работает.
Теперь хочу попробовать послать письмо с девайса на почтовый сервер в интернете, на mail.ru например, или gmail.com...
Какие пути-решения могут быть для этого, что требуется со стороны моего девайса и/или компа, через который осуществляется доступ в интернет?
Девайс может быть поключен к компу либо к той же сетевой карте, на которую подключен интернет, через свитч, либо девайс подключается ко второй сетевой карте компа.
Заранее благодарен, Дмитрий
|
|
|
|
|
May 4 2012, 08:36
|
Местный
  
Группа: Свой
Сообщений: 311
Регистрация: 12-01-11
Из: Калининград (Koenigsberg)
Пользователь №: 62 182

|
Во-первых нужен путь до сервера, т.е. маршрут. Если выходите через роутер, то на девайсе должен быть указан шлюз. Если в компе 2 сетевухи: одна в локалку с роутером в инет, другая в девайс, то на компе нужно маршрутизацию настроить и указывать шлюзом IP сетевухи, либо мост между обеими сетевухами и указывать шлюз вашей сети. Во-вторых некоторые сервера требуют SSL и аутенификацию с шифрованным паролем. Это всё есть в вашем сетевом стеке? mail.ru не требует ничего, можно хоть netcat-ом подключиться и письмо написать. gmail кажется нельзя без SSL, поправьте если не прав, самому в ближайшее время предстоит с этим столкнуться.
--------------------
typedef enum { no, yes, maybe } bool; | блог тут
|
|
|
|
|
May 5 2012, 04:30
|
Частый гость
 
Группа: Участник
Сообщений: 123
Регистрация: 22-03-10
Пользователь №: 56 115

|
Рассмотрим по порядку, сначала случай с одной сетевухой. Цитата Если выходите через роутер, то на девайсе должен быть указан шлюз. Адресом шлюза, как я понимаю, будет являться внешний IP компа (динамически назначаемый провайдером), через который он (комп) имеет доступ к инету. Так? Возьмём пример: Условия: 1. Комп, девайс и интернетовский кабель заходят на один свитч 2. Интернет IP компа (динамически назначаемый, может быть любым): 109.161.75.166 3. Внутренний IP адрес компа, например 192.168.0.1 Адресом шлюза в настройках девайса будет 109.161.75.166 ? Или может им будет IP адрес роутера, через который комп подключен к инету? Цитата Во-вторых некоторые сервера требуют SSL и аутенификацию с шифрованным паролем. Благодарю за информацию, тут я не знаю еще, буду пробовать к Mail.ru сначала значит, дальше видно будет.
|
|
|
|
|
May 5 2012, 09:07
|
Местный
  
Группа: Свой
Сообщений: 311
Регистрация: 12-01-11
Из: Калининград (Koenigsberg)
Пользователь №: 62 182

|
Цитата(berkl @ May 5 2012, 07:30)  Условия: 1. Комп, девайс и интернетовский кабель заходят на один свитч 2. Интернет IP компа (динамически назначаемый, может быть любым): 109.161.75.166 3. Внутренний IP адрес компа, например 192.168.0.1
Адресом шлюза в настройках девайса будет 109.161.75.166 ? Или может им будет IP адрес роутера, через который комп подключен к инету? Так всё же от провайдера кабель приходит в роутер (внешний IP 109.161.75.166), а после роутера идёт в свитч, куда подключено всё остальное в т.ч. девайс? Так? Тогда комп вообще не при делах, шлюзом будет внутренний IP роутера 192.168... или что у вас там назначено для него
--------------------
typedef enum { no, yes, maybe } bool; | блог тут
|
|
|
|
|
May 5 2012, 11:27
|
Частый гость
 
Группа: Участник
Сообщений: 123
Регистрация: 22-03-10
Пользователь №: 56 115

|
Благодарю за внимание к моей беде. Цитата Так всё же от провайдера кабель приходит в роутер (внешний IP 109.161.75.166), а после роутера идёт в свитч, куда подключено всё остальное в т.ч. девайс? Так? Тогда комп вообще не при делах, шлюзом будет внутренний IP роутера 192.168... или что у вас там назначено для него Давайте ясность внесу. Внешний IP 109.161.75.166 - это адрес моего компа. Интернет приходит в помещение в виде кабеля который надо подключать непосредственно в сетевуху компа. Ну или через свитч, как в нашем случае. Что находится на другом конце этого кабеля я не знаю, идёт он откуда-то с крыши по стояку, а что там на крыше у него фиг знает. В инет я захожу вводя логин и пароль, который мне выдал провайдер. Внешний IP адрес моего компа Провайдер назначает мне динамически. Всё (интернет и девайс) подключены к одной сетевой карте компа через свитч, как я и писал. Про роутер. Если роутер и есть где-то то мне ничего про это не известно, может на крыше и есть чё нить, фиг знает. Для меня существует только приходящий в помещение интернетовский кабель и динамический IP провайдера (109.161.75.166 в нашем примере). Цитата Для дивайса шлюзом будет комп (т.е адрес 192.168.0.1), но только в случае если в компе настроен шаринг интернет подключения. Т.е. комп должен быть роутером если вы не напутали с условиями. Окей, значит IP девайса должен принадлежать внутренней сети компа? Например IP девайса может быть 192.168.0.2, в этом случае. Так? Тогда вопрос: настроен шаринтг интернета, вы имеете ввиду в свойствах итернет-подключения на стр "Дополнительно" выставить галочку "Разрешить другим пользователям использовать подключение к Интернету...."? Или что?
|
|
|
|
|
May 5 2012, 14:35
|
Местный
  
Группа: Свой
Сообщений: 311
Регистрация: 12-01-11
Из: Калининград (Koenigsberg)
Пользователь №: 62 182

|
Цитата Внешний IP 109.161.75.166 - это адрес моего компа. Интернет приходит в помещение в виде кабеля который надо подключать непосредственно в сетевуху компа. Ну или через свитч, как в нашем случае. Что находится на другом конце этого кабеля я не знаю, идёт он откуда-то с крыши по стояку, а что там на крыше у него фиг знает. В инет я захожу вводя логин и пароль, который мне выдал провайдер. Внешний IP адрес моего компа Провайдер назначает мне динамически. Всё (интернет и девайс) подключены к одной сетевой карте компа через свитч, как я и писал.
Про роутер. Если роутер и есть где-то то мне ничего про это не известно, может на крыше и есть чё нить, фиг знает. Для меня существует только приходящий в помещение интернетовский кабель и динамический IP провайдера (109.161.75.166 в нашем примере). Понято. У вас комп и является роутером. В интернет ходит через VPN и раздаёт инет в локалку на одной сетевухе. Не лучший вариант т.к. если провайдер предоставляет локалку между абонентами, то физически ваша сеть окажется частью этой сети и ничем не защищена от других абонентов Цитата Окей, значит IP девайса должен принадлежать внутренней сети компа? Например IP девайса может быть 192.168.0.2, в этом случае. Так? Да. А шлюзом будет внутренний IP компа (192.168.0.1 или что там). При этом на компе должен быть настроен тот самый шаринг интернета именно той галочкой в св-вах интернет-подключения.
--------------------
typedef enum { no, yes, maybe } bool; | блог тут
|
|
|
|
|
May 5 2012, 15:54
|
Частый гость
 
Группа: Участник
Сообщений: 123
Регистрация: 22-03-10
Пользователь №: 56 115

|
Цитата Понято. У вас комп и является роутером. В интернет ходит через VPN и раздаёт инет в локалку на одной сетевухе. Не лучший вариант т.к. если провайдер предоставляет локалку между абонентами, то физически ваша сеть окажется частью этой сети и ничем не защищена от других абонентов Очень может быть. Цитата Да. А шлюзом будет внутренний IP компа (192.168.0.1 или что там). При этом на компе должен быть настроен тот самый шаринг интернета именно той галочкой в св-вах интернет-подключения. Ясно, с подключением и терминологией вроде немного разобрался. Вернёмся собственно к SMTP. Допустим, хотим кинуть письмецо кому-то на mail.ru. Для отсылки письма, первым делом SMTP клиент (т.е. мой девайс) должен подключится к порту 25 SMTP сервера. В буквальном смысле, первым делом нужно послать TCP пакет с командой на подключение (флаг SYN) с IP 192.168.0.2 ( от девайса ) на IP SMTP сервера. Вопрос: в нашем случае, каким будет IP SMTP сервера? IP mail.ru? Если да, то откуда девайс его знает? Может у девайса должна быть поддержка DNS чтобы узнавать айпишник сервера? Или как?
Сообщение отредактировал berkl - May 5 2012, 15:55
|
|
|
|
|
May 5 2012, 19:42
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(berkl @ May 5 2012, 18:54)  Вернёмся собственно к SMTP. Допустим, хотим кинуть письмецо кому-то на mail.ru. Для отсылки письма, первым делом SMTP клиент (т.е. мой девайс) должен подключится к порту 25 SMTP сервера. В буквальном смысле, первым делом нужно послать TCP пакет с командой на подключение (флаг SYN) с IP 192.168.0.2 ( от девайса ) на IP SMTP сервера. Вопрос: в нашем случае, каким будет IP SMTP сервера? IP mail.ru? Если да, то откуда девайс его знает? Может у девайса должна быть поддержка DNS чтобы узнавать айпишник сервера? Вообще-то шаринг интернета в Win XP насколько помню приводит к запуску на компе DHCP сервера который работает с сеткой с жестко заданной маской которая имеет вид 192.168.2.xxx В Win 7 тоже вроде мало что изменилось. Т.е. дивайс должен иметь как минимум DHCP клиента. Сервис DHCP в принципе может сообщить и IP адрес SNMP сервера дивайсу. Но универсальный путь, конечно, использовать DNS. При этом DNS сервером для дивайса будет тот же комп.
|
|
|
|
|
May 6 2012, 07:17
|
Частый гость
 
Группа: Участник
Сообщений: 123
Регистрация: 22-03-10
Пользователь №: 56 115

|
Цитата Вообще-то шаринг интернета в Win XP насколько помню приводит к запуску на компе DHCP сервера который работает с сеткой с жестко заданной маской которая имеет вид 192.168.2.xxx Вроде не так. Когда общий доступ открывается, то этому компу автоматом назначается IP 192.168.0.1. Остальные компы которым нужен интернет должны быть в адресном поле от 192.168.0.2 до 192.168.0.254. Я попробовал 3 компа объединить, всё заработало но адреса остальным компам ручками назначал. Цитата Но универсальный путь, конечно, использовать DNS. Цитата Если нужно слать почту на доменное имя естественно в стеке контроллера должно быть преобразование доменных имен в ip Понятно. Значит нужна поддержка DNS на борту девайса, нету её у меня, надо делать. Парни, благодарю всех за консультацию, добра.
|
|
|
|
|
May 6 2012, 07:50
|
Местный
  
Группа: Свой
Сообщений: 311
Регистрация: 12-01-11
Из: Калининград (Koenigsberg)
Пользователь №: 62 182

|
Цитата(berkl @ May 5 2012, 18:54)  Вернёмся собственно к SMTP. Допустим, хотим кинуть письмецо кому-то на mail.ru. Для отсылки письма, первым делом SMTP клиент (т.е. мой девайс) должен подключится к порту 25 SMTP сервера. В буквальном смысле, первым делом нужно послать TCP пакет с командой на подключение (флаг SYN) с IP 192.168.0.2 ( от девайса ) на IP SMTP сервера. Вопрос: в нашем случае, каким будет IP SMTP сервера? IP mail.ru? Если да, то откуда девайс его знает? Может у девайса должна быть поддержка DNS чтобы узнавать айпишник сервера? Или как? SMTP не волнует транспортный уровень, т.е. флаги TCP, ему важно установить соединение и получить ответ от сервера, а какой голубиной почтой это прошло не важно. У mail.ru smtp сервер - smtp.mail.ru. DNS очень желательно, но на крайняк можно и без него по IP (у smtp.mail.ru - 94.100.177.1, но в ответ на приветствие сервера всё равно нужно подставлять доменное имя что он пришлёт). SMTP довольно простой протокол, можете почитать описание и поиграться telnet smtp.mail.ru 25. DNS, кстати, тоже простой, если UDP поддерживает ваш стек, то реализовать несложно.
Сообщение отредактировал Cosmojam - May 6 2012, 07:51
--------------------
typedef enum { no, yes, maybe } bool; | блог тут
|
|
|
|
|
May 12 2012, 10:35
|
практикующий тех. волшебник
    
Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417

|
Цитата(berkl @ May 4 2012, 10:06)  ...Какие пути-решения могут быть для этого, что требуется со стороны моего девайса и/или компа, через который осуществляется доступ в интернет?... тут всё выше верно уже сказали...Но предлагаю начать ышо с более простого. сделайте поддержку пинга. как эха, так и саму тестилку. и многое станет на свои места. если вообще всё сводить к минимуму. то вам нужен тупо IP адрес, куда слать по определённому протоколу определённые данные и усё. Всё остальное - надстройки и удобства. Т.е. например если ваш девайс поддерживает ARP и эхо ответ от службы ICMP то Вы его сможете пинговать в любой сети (если это разрешено и маршрутиризация настроена корректно внутри сети)... удачи вам (круглый) ЗЫ Рекомендую обзавестись сетевым анализатором, и частенько заглядывать в него на предмет - а как это сделано у других.... Плюс даташиты с РФСи и многие вопросы отпадут сами собой...
|
|
|
|
|
Oct 30 2012, 09:18
|
Частый гость
 
Группа: Участник
Сообщений: 123
Регистрация: 22-03-10
Пользователь №: 56 115

|
Здравия всем, Цитата Некоторые провайдеры (Стрим, например) блокируют 25-й порт. Поэтому проверьте нет ли у Вас такой блокировки. Проверка в ХР - открываете "черное окно" и в нем набираете к примеру telnet smtp.mail.ru 25. Если через некоторое время появится ответ вида "220 smtp13.mail.ru ESMTP ready" - то порт не закрыт. В 7-ке telnet из-за любви к хомячкам убрали, его надо доставлять. Возможно у меня именно именно этот случай - блокировка со стороны провайдера. Пробовал запускать telnet smtp.mail.ru 25 , а также telnet smtp.yandex.ru 25, и telnet smtp.gmail.ru 25 . Не соединяются. Ладно, дальше решил проводить эксперименты только с сервером Яндекса. Глянул описание как Outlook Express (ОЕ) настраивается на работу с Яндексом. Для исходящей почты там сказано выбирать порт 465, с кодированием, то есть использовать протокол SSL. То есть Яндексу письмо по SMTP не послать теперь, и в данном случае, мой провайдер не причём? Я запустил сниффер (Wireshark) чтобы посмотреть чё там происходит. В общем, если SSL в настройках ОЕ не выбран, то он (OE) отправляет запрос на соединение с портом 465 Яндекса (SYN), тот ему отвечает (SYN, ACK) и всё на этом. А если галочку для SSL выставить то после соединения с 465 портом, ОЕ посылает "Hello" Яндексу, тот в ответ ему тоже "Hello" и дальше пошло поехало... Короче я прихожу к выводу что посылка писем через Яндекс по SMTP протоколу невозможна, SSL, TLS - пожалуста. И вероятно та же байда с остальными "большими" почтовыми серверами. Я прав? Заранее благодарен
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|