Отправка почты через telnet-клиента (с авторизацией на smtp-сервере).

12 сообщений в этой теме

Попробуем отправить почту с помощью командной строки, чтобы понять принцип общения с smtp-сервером.

Тестировать вам придется на своем smtp сервере, надеюсь у каждого есть почта на бесплатных серверах, вот на них и можете потестировать. (В windows 7 telnet-клиент по умолчанию не установлен. Для помощи в установке в справке введите telnet)

Для примера буду использовать mail.ru

Запускаем командную строку(ПУСК/выполнить/cmd/[OK])

В открывшемся окне пишем

telnet smtp.mail.ru 25 <жмем inter>

Если соединение прошло нормально, сервер должен ответить примерно так

220 mail.ru ESMTP Tue, 06 Jul 2010 19:31:11 +0400

Теперь здороваемся с сервером

HELO mail.ru

Если все ок, ответ будет

250 mx34.mail.ru Hello mail.ru [95.68.168.208]

250-SIZE 10485760

250-8BITMIME

250-

UTH PL

IN LOGIN - наихудший вариант для начинающих. Сервер хочет авторизацию

250 PIPELINING

После подобного ответа можно вводить логин и пароль для авторизации. Для этого вводим команду.

UTH LOGIN

получаем ответ

334 VXNlcm5hbWU6 - дай пароль говорит

И вот сейчас надо вводить пароль логин, но они должны быть закодированы.

Самый простой способ закодировать логин и пароль, это при помощи функции php base64_encode()

Создайте следующий php код и запустите его на тестовом сервере (можно использовать Денвер с www.denwer.ru ).

<?

print base64_encode("логин"); //для M

IL.Ru логин в формате <учётка>@mail.ru

print '<br>';

print base64_encode("пароль"); // ваш пароль

?>

Коды логина и пароля получены, теперь можно ввести их.

Копируйте и вставляйте их по очереди.

После ввода логина должно появиться сообщение с кодом 334.

334 UGFzc3dvcmQ6 - дай пароль говорит (может и не быть сообщения)

После ввода правильного пароля должно появиться

235

uthentication succeeded

Авторизация пройдена. Сейчас указываем от кого будет написано письмо. Указываете свой ящик, от имени которого авторизовались.

M

IL FROM:login@mail.ru

Если сервер принял этот адрес, получите ответ

250 OK

Теперь указываем email получателя

RCPT TO:test@rambler.ru

положительный ответ сервера

250

ccepted

Если нужно письмо отправить нескольким адресатам, повторяем команду RCPT TO: сколько нужно раз

А сейчас настало время самого письма. Вводим команду

D

T

Ответ будет примерно таким

354 Enter message, ending with "." on a line by itself - конец письма "."

Сейчас можно вводить текст письма.

Само письмо состоит из заголовков и тела.

Заголовки конечно можно не писать, но лучше чтобы они были (может обругаться на спам)

Заголовки от тела отделяются пустой строкой

Subject: Это тема письма

To: test@rambler.ru

X-Mailer: webi.ru mailer

Отделили заголовки пустой строкой, и теперь пишем текст письма…

Eto test smtp

А чтобы закончить ввод письма, нужно на отдельной строке ввести точку.

.

Когда введете точку, получите ответ типа, где Id-идентификатор письма

250 OK id=1OW

2-000Og9-00

Теперь завершаем работу с сервером.

QUIT

ответ

221 mx30.mail.ru closing connection

Вот такой принцип общения с SMTP сервером.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Хотите убрать блок рекламы? Авторизуйтесь

Loading...

Добавлю, что по умолчанию в Win7 Telnet не включен (Но есть).

Включалка телнета для семерки тут : http://system-administrators.info/?p=3329

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

(В windows 7 telnet-клиент по умолчанию не установлен. Для помощи в установке в справке введите telnet)

Я вроде-бы всё указал...

А по приёму почты нужно ?

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Скажите, а какой от этого практический смысл?

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Скажите а какой от этого практический смысл?

1. Понимание принципа общения почтовых серверов необходимо для создания нового почтового клиента либо проверки доступности почтового сервера.

2. наиболее часто применяется в PHP-скриптах для рассылки почты

3. Начальник дал тебе задание - оповестить 100 человек, что заседание переносится на другое время и раздать им пакет документов для подготовки к совещанию. Что делать? Всех обзванивать и просить придти-приехать за документами? А вот и нет- новость на сайт организации с прицепленными доками и сайт разошлёт им всем SMS-ки по номерам из файлика, определив по первым трём цифрам оператора сотовой связи, подставит соответствующий номеру SMS-шлюз ОПСоса, через почту с просьбой взять доки на сайте и переносе времени совещания.

4. Оперативное оповешение по заданным критериям (например по определённым номерам ошибок в системном журнале, + отправка СМС, если ты далеко и инетпочта стоит в роуминге бешенные деньги, а СМС входящая бесплатна. Да и не буду я в отпуске на море проверять почту, если что-то выполнилось не так - придёт смс...)

В-общем, прикладное применение безгранично. И ещё я хотел, что бы начинающие IT-шники после ФИСТа (я имею ввиду в том числе и своих сыновей) не боялись командной строки. Как много консольных команд знаем даже мы, старые волки? Что, например, знают многие админы о команде wmic ? А она по-умолчанию есть у всех... Вот краткий хелп по инструменту:

wmic /?[<глобальные ключи>] <команда>

Имеются следующие глобальные ключи:

/N

MESP

CE Путь к пространству имен, с которым оперирует псевдоним.

/ROLE Путь к роли, содержащей определения для псевдонимов.

/NODE Серверы, с которыми будет работать псевдоним.

/IMPLEVEL Уровень олицетворения для клиента.

/

UTHLEVEL Уровень проверки подлинности для клиента.

/LOC

LE Код языка, который клиент должен использовать.

/PRIVILEGES Включение или отмена всех прав.

/TR

CE Вывод отладочных данных в stderr.

/RECORD Запись всех вводимых команд и результатов их работы.

/INTER

CTIVE Установка или отмена режима интерактивной работы.

/F

ILF

ST Установка или отмена режима FailFast.

/USER Задание имени пользователя для сеанса.

/P

SSWORD Пароль для входа в сеанс.

/OUTPUT Перенаправление выводного потока.

/

PPEND Режим перенаправления выводного потока.

/

GGREG

TE Включение или отключение режима совместного вывода.

/

UTHORITY Specifies the <authority type> for the connection.

/?[:<BRIEF|FULL>] Сведения об использовании команд.

Для получения дополнительных сведений о конкретном глобальном ключе введите: <имя ключа> /?

Для текущей роли доступны следующие псевдонимы:

LI

S - Доступ к псевдонимам, имеющимся на локальном компьютере

B

SEBO

RD - Управление системной платой.

BIOS - Управление базовой системой ввода-вывода (BIOS).

BOOTCONFIG - Управление конфигурацией загрузки.

CDROM - Управление устройствами чтения компакт-дисков.

COMPUTERSYSTEM - Управление компьютером.

CPU - Управление ЦП.

CSPRODUCT - Сведения о системе из SMBIOS.

D

T

FILE - Управление файлами данных.

DCOM

PP - Управление приложениями DCOM.

DESKTOP - Управление рабочим столом.

DESKTOPMONITOR - Управление системой мониторинга рабочего стола.

DEVICEMEMORY

DDRESS - Управление адресами памяти устройства.

DISKDRIVE - Управление физическими дисками.

DISKQUOT

- Использование дискового пространства для томов NTFS.

DM

CH

NNEL - Управление каналами прямого доступа к памяти (DM

).

ENVIRONMENT - Управление настройками системной среды.

FSDIR - Управление оглавлением файловой системы.

GROUP - Управление учетными записями групп.

IDECONTROLLER - Управление IDE-контроллерами.

IRQ - Управление линиями запроса на прерывание (IRQ).

JOB - Доступ к заданиям, назначенным планировщиком.

LO

DORDER - Управление системными службами, задающими зависимости при выполнении.

LOGIC

LDISK - Управление локальными накопителями.

LOGON - Сеансы LOGON.

MEMC

CHE - Управление кэш-памятью.

MEMLOGIC

L - Управление системной памятью (настройка и доступность).

MEMPHYSIC

L - Управление физической памятью компьютера.

NETCLIENT - Управление сетевыми клиентами.

NETLOGIN - Управление данными входа в систему конкретных пользователей.

NETPROTOCOL - Управление протоколами (и их сетевыми характеристиками).

NETUSE - Управление активными сетевыми соединениями.

NIC - Управление платами сетевого интерфейса (NIC).

NICCONFIG - Управление сетевыми платами.

NTDOM

IN - Управление доменами NT.

NTEVENT - Записи в журнале событий NT.

NTEVENTLOG - Управление файлом журнала событий NT.

ONBO

RDDEVICE - Управление встроенными общими контроллерами на системной плате.

OS - Управление установленными операционными системами.

P

GEFILE - Управления файлом свопинга виртуальной памяти.

P

GEFILESET - Управление параметрами файла подкачки.

P

RTITION - Управление разбитыми на разделы областями физического диска.

PORT - Управление портами ввода/вывода.

PORTCONNECTOR - Управление физическими портами соединения.

PRINTER - Управление печатающими устройствами.

PRINTERCONFIG - Управление конфигурацией печатающих устройств.

PRINTJOB - Управление заданиями печати.

PROCESS - Управление процессам.

PRODUCT - Управление задачами пакета установки.

QFE - Разработка поправок (Quick-Fix Engineering).

QUOT

SETTING - Установка данных о дисковых квотах для тома.

RECOVEROS - Данные, которые будут взяты из ОЗУ при сбое ОС.

REGISTRY - Управление реестром системы.

SCSICONTROLLER - Управление SCSI-контроллерами.

SERVER - Управление сведениями о сервере.

SERVICE - Управление служебными приложениями.

SH

RE - Управление общими ресурсами.

SOFTW

REELEMENT - Управление установленными в системе компонентами программного продукта.

SOFTW

REFE

TURE - Управление подсистемами ПО SoftwareElement.

SOUNDDEV - Управление звуковыми устройствами.

ST

RTUP - Управление командами, запускающимися автоматически при входе пользователей в систему.

SYS

CCOUNT - Управление системной учетной записью.

SYSDRIVER - Управление системным драйвером базовой службы.

SYSTEMENCLOSURE - Управление физической средой системы.

SYSTEMSLOT - Управление точками физических соединений, включая порты, разъемы и периферию, а также специальными точками соединения.

T

PEDRIVE - Управление ленточными накопителями.

TEMPER

TURE - Управление датчиком температуры.

TIMEZONE - Управление данными о часовых поясах.

UPS - Управление источниками бесперебойного питания.

USER

CCOUNT - Управление учетными записями.

VOLT

GE - Управление данными электронного измерителя напряжения.

VOLUMEQUOT

SETTING - Сопоставление дисковых квот конкретному тому.

WMISET - Управление параметрами работы службы WMI.

Для получения дополнительных сведений о конкретном псевдониме введите: <псевдоним> /?

CL

SS - Переход к полной схеме WMI.

P

TH - Переход к полным путям к WMI-объектам.

CONTEXT - Вывод состояния всех глобальных ключей.

QUIT/EXIT - Выход из программы.

Чтобы узнать подробности о командах CL

SS/P

TH/CONTEXT, введите: (CL

SS | P

TH | CONTEXT) /?

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я вроде-бы всё указал...

А по приёму почты нужно ?

По телнету? Да, тоже нужно его включить.

Но это же один раз такое делаеться, один раз включил службу, и работай, перезагружай, итд.

И ещё я хотел что бы начинающие IT-шники после ФИСТа (я имею ввиду в том числе и своих сыновей) не боялись командной строки.

Я вот помню свой первый комп, 20Mhz проц (40 с кнопкой спид :) ), 1 МБ оперы, и видеокарта с плашками на увеличение мощности :) Кроме нортона и собственно доса ничего и не было :) И ведь как то жил :)

А мне вот ещё один год остался на ФИСТе. Шестой курс, заочка.

И вы знаете, проблема ФИСТа в том, что слишком много времени уделяеться реально устаревшим технологиям, например Ассемблер, Паскаль, командная (Хоть я и вспоминаю Паскаль и CMD с любовью, но это все, технологии прошлого). А на изучение реально нужных высокоуровневых языков и технологий (C++, .Net) выдаеться ровно такое же время, как и на устаревшие технологии...

Про компьютерную графику вообще молчу, когда я поступил на ИСТд, в надежде что там будет куча компьютерной, а в итоге оказалось что её там изучают на уровне учебников 2001 года, да и к тому же бесконечно мало времени... Я сильно разочаровался во всем этом.

Так что наверное, лучше оставить командную в прошлом, сейчас другой век... Приятно конечно вспомнить это все, но актуальнее (И на пользу выпускникам), изучать NET, CUD

, OpenCL, и многое другое, соответствующее европейскому уровню.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А на изучение реально нужных высокоуровневых языков и технологий (C++ .Net) выдаеться ровно такое же время, как и на устаревшие технологии...

Это не изучение- институт просто знакомит со всем в равной мере...

Про приём почты - я спрашивал, не дописать ли 1 пост как принимать почту по POP3?

лучше оставить командную в прошлом, сейчас другой век...

и потерять новое поколение русских програмистов, попав в зависимость от языков высокого уровня. Я ,конечно, не ратую за ассемблер, но иногда и без него не обойтись.

Как ты напишешь отправку почты на языке высокого уровня, например, на FreeBSD ? (А большинство интернет-серверов работает на UNIX-подобных системах.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Это не изучение- институт просто знакомит со всем в равной мере...

А зачем забивать мозг студенту - перваку, паскалем, а второму курсу - си (Забыл как то компилятор называеться), причем растягивая на два семестра, с курсовыми работами и прочей лабудой (Например 14 лаб на паскале)? На третьем курсе - асма с 6 лабами и курсачом кстати.

Про приём почты - я спрашивал не дописать ли 1 пост как принимать почту по POP3?

Да, это было бы здорово.

и потерять новое поколение русских програмистов попав в зависимость от языков высокого уровня. Я ,конечно, не ратую за ассемблер, но иногда и без него не обойтись.

Каких программистов то... Что наши программисты смогли предложить миру? Весь мир работает с американскимевропейским софтом, а наши "все понимают, но не могут сказать"?

Ассемблер применим только в антивирусах, ну и в программировании на станках (Хотя, точно знаю, что сейчас даже у нас тенденция к переходу с АСМЕ на Си). Ну где его ещё можно использовать? Наспиать свой аналог inttostr чтоле? Не вижу смысла. Драва у нас на асме не пишут, так как не выпускают то, что могло бы эти драва использовать.

Как ты напишешь отправку почты на языке высокого уровня например, на FreeBSD ? (А большинство интернет-серверов работает на UNIX-подобных системах.

У меня другая специализация - я программер в 3D. С Unixом на "вы" (Впрочем в универе вроде его на 5 сдал), так как его большинство нужных мне приложений не держит даже чеерз вайн/цедегу.

Поэтому, я делаю акцент на Windows, и софте под него. Что-нибудь значимое для мира наши программеры сделали? Вроде нет. Чисто локальные софты, типа глючной 1С и тормозного кава.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

WinR

R, K

V (особая песня), DrWeb, всевозможные прошивки (как нибудь создам тему как отучит Гнусмас-1641 от жадности), очень многие работают по контракту на буржуев...

Я когда-то (лет 15 назад) писал на ассемблере программатор, пытался позже писать ковыряние в усб-принтерах в памяти принтера - аналог сервис-прог, правда на ХР это практически у меня не получилось- принтер одной и той же модели с разными серийными номерами создаёт свой собственный класспорт и буржуи борются с нами...

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Насколько я знаю КАВ и Веб в основном популярны то в этой стране.

ВинРАР - пожалуй да, единственное, что вызывает восхищение.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Пожалуйста, войдите для комментирования

Вы сможете оставить комментарий после входа



Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу