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


Автор: neosapient 2.10.2006, 14:30
Собственно надо написать программу по протаколу SMTP.
Я так понял, что клиентское приложение использует: SMTP для отправки почты, POP3 для приема.
А еще есть SMTP-сервер, который используется для ответов на запросы клиента.
Вообщем так, у кого есть примеры программ, в которых можно разобраться.
Я нашел вроде такие примеры http://www.sources.ru/cpp/cpp_mail_utilits.shtml
Но как пользоваться http://www.sources.ru/cpp/mail.zip
В принципе я понимаю протакол, но как ей полльзоваться.

То есть чем я должен заполнить поля

to: кому отсылаю (на какой почтовый ящик)
from: от кого (с какого почтового ящика)
SMTP: rambler.ru (здесь находиться мой почтовый ящик)

Может проблема в том, что я шлю на почтовый ящик на rambler.ru
Я знаю "кому" хочу отослать, но как мне указать "от кого", ведь мой ПК не имеет имя типа myPC.ru и соответственно где вставить собаку "@"

Автор: Snowy 2.10.2006, 14:46
От кого - любой почтовый ящик.
Он может существовать или быть выдуманным.
А можно вообще не указывать.
Однако не факт, что рамблера это устроит.
Там наверняка введены ограничения на протокол, обязывающие указывать обратный адрес, во избежание спама.
Также ограничение может касаться домена, с которого отправляется почта.
Но в чистом виде протокол позволяет не указывать отправителя.
Свой компьютер, разумеется указать нельзя, если только он не имеет статического IP, домена и SMTP сервера.
Поэтому нужно указывать действующий адрес на том же рамблере.

Автор: neosapient 2.10.2006, 21:31
Цитата

Поэтому нужно указывать действующий адрес на том же рамблере. 

В смысле rambler.ru или [email protected] 

Автор: DENNN 3.10.2006, 09:22
Цитата(neosapient @  2.10.2006,  14:30 Найти цитируемый пост)
То есть чем я должен заполнить поля

Не помешает все же сначала прочитать стандарт на протокол SMTP, по которому идет пересылка почты.

Автор: neosapient 3.10.2006, 11:10
Ну я читал и суть вроде понял
Читал:
http://www.piter-press.ru/library/978588782088/pinternet.phtml?fil=pint_15
или скажем
http://www.sources.ru/protocols/smtp_learning.shtml
http://www.sources.ru/protocols/pop3_learning.shtml
много чего читал, но по правде достойного понимания не имею.

Дома сетка из двух компов.
Как мне ее настроить чтоб можнобыло тренироваться?
Как (и что) проставить SMTP-клиет (с исходниками)?
Как (и что) проставить SMTP-сервер (с исходниками)?

Автор: DENNN 3.10.2006, 11:27
Если задача стоит написать прогу, которая отправляет письма, то исходники на SMTP-сервер все же лишнее. Просто ставь и настраивай почтовый сервер, к которуму ты потом будешь подсоединятся и отправлять письма. Обмен идет не в двоичном виде, а в текстовом. Т.е. для лучшего понимания ты можешь зайти на почтовый сервер телнетом и попробовать "сам" отправить письмо. Обычное сообщение не должно вызвать никаких проблем. Сложности появяться, к примеру, если стоит цель отправлять вложения в письме. Нужно почитать как кодируется содержимое файла и какие метки появляются в теле письма.

Автор: neosapient 3.10.2006, 12:13
Цитата

Просто ставь и настраивай почтовый сервер, к которуму ты потом будешь подсоединятся и отправлять письма

Какой SMTP-сервер поставить:
- как называется?
- где найти инсталятор?
- как правильно настроить?

Нужна ли мне тогда домашняя сетка, или на первых порах тестирования мне прекрастно подойдет лишь мой ПК с которого буду отправлять и на который буду принимать те(к)стовые сообщения?

Могули я воспользоваться для тестирования http://www.sources.ru/cpp/mail.zip на которую уже ссылался.
Вообщем надо собрать "учебный стенд для лабораторной работы", так сказать полигон, чтоб мог поэкспериментировать. Как нормальный русский пока руками не потрогаю (потоки данных) - не п(р)оверю.
Помогите чайнику разобраться  smile 

Автор: neosapient 3.10.2006, 20:06
Пробегусь по веткам форума:
http://forum.vingrad.ru/index.php?showtopic=105433
http://forum.vingrad.ru/index.php?showtopic=105116
http://forum.vingrad.ru/index.php?showtopic=53941
http://forum.vingrad.ru/index.php?showtopic=37110

Автор: ZeeLax 3.10.2006, 20:49
Когда пишешь софт, используя существующие протоколы - ответы на все вопросы надо искать в RFC.

Автор: GrayCardinal 5.10.2006, 09:48
neosapient, 
"Протокол" через "о" пишется.  smile 
Вообще, в чем суть данного флейма  smile 

Цитата

Какой SMTP-сервер поставить:
- как называется?
- где найти инсталятор?
- как правильно настроить?

12000$ и будет вам сервер со всем чем потребно smile Даже с техсапортом.  smile

Добавлено @ 09:50 
PS
Под темой куча ссылок.

Автор: neosapient 5.10.2006, 13:06
Цитата

12000$ и будет вам сервер со всем чем потребно  Даже с техсапортом.  

Не мне во всем надо самому разобраться, и руками сетку настроить, и проверять  сообщения пришедшие с одного моего "техсапорта" на другой мой "техсапорт", который я должен написать.
Я ищу знающего проводника в этом деле. 
Каждому Нео(sapient`у) нужен свой Морфиус smile 

Автор: GrayCardinal 5.10.2006, 13:14
Цитата

надо самому разобраться, и руками сетку настроить

Вопрос не снят - на кой черт этот флейм  smile 

Автор: neosapient 5.10.2006, 17:07
Цитата

Вопрос не снят - на кой черт этот флейм  smile 

Прасти, но в моей тирменологии не слова "флейм ".
Зачем я хочу основатель вникнуть в тему? Через две недели надо в инстетуте сдавать презентацию по теме "Почта, SMTP, POP3", а у меня ни одного примера нет. И вообще, разобраться в такой теме мне кажется полезным.

Прошу всех отвечать ближе к теме моего вопроса...

Автор: ZeeLax 5.10.2006, 20:58
Цитата(neosapient @  5.10.2006,  20:07 Найти цитируемый пост)
Прошу всех отвечать ближе к теме моего вопроса... 

Прошу грамотнее ставить вопрос. Тогда нам легче будет на него ответить. "Написание программ на blablabla" обычно подразумевает под "blablabla" язык программирования. Да и таких элементарных ошибок в словах можно и не делать.

А внизу темы есть куча ссылок по вопросу. Среди них, например эта http://forum.vingrad.ru/index.php?showtopic=12212. Внутри имеются ссылки на описания протоколов на великом и могучем. При желании, можно нагуглить с гигабайт инфы по данному вопросу, купить книжку в магазине, благо, сейчас это добра навалом.

Автор: neosapient 5.10.2006, 22:21
OS Windows
компилятор VC7
Язык С\С++

Нужен минимум, в котором отражается действие SMTP протокола.
Надо, чтоб отсылка шла на почтовый ящик на rambler.ru
 smile 
Найденый мной http://www.sources.ru/cpp/mail.zip не работает smile 

Автор: GrayCardinal 6.10.2006, 05:22
neosapient, 
Берется DNS клиент, вопрошается MX запись. Коннектимся к ней или (к любому своему SMTP).
Отправляем письмо...
Чего отправлять есть тут :
http://grayhost.narod.ru/gc-mailer-1.1.tar.gz
Оно под линь, но суть не меняется. Там количество кода минимально, даже если по буквам читать будешь, за неделю управишься  smile 
Да, на счет adns, не знаю, по-моему он и под винду собирается нормально..........................................

Автор: unicuum 8.10.2006, 11:51
Цитата(neosapient @  3.10.2006,  12:13 Найти цитируемый пост)
Какой SMTP-сервер поставить:
- как называется?
- где найти инсталятор?
- как правильно настроить?


Если хочешь исследовать SMTP, то можно использовать встроенный в Windows XP IIS 6.0, а если тебе плюс к этому нужен POP3, то без Windows Server 2003 не обойтись. К тому же в документации по Windows Server 2003 всё по-русски написано, как протоколы работают, что делают и вообще всё что нужно для настройки своего локального почтового сервера.

Цитата(neosapient @  5.10.2006,  17:07 Найти цитируемый пост)
Зачем я хочу основатель вникнуть в тему? Через две недели надо в инстетуте сдавать презентацию по теме "Почта, SMTP, POP3", а у меня ни одного примера нет. И вообще, разобраться в такой теме мне кажется полезным.


А что тут разбираться? Есть сервер, на нём две службы SMTP и POP3. По одной письмо приходит и сохраняется, по другой это письмо можно выкачать. То что стоит до знака @ вводится в службе POP3 как учётная запись, а то что после имя сайта. Причём то же самое имя идёт и по другим протоколам, навроде HTTP и прочее, только там по другому запись оформляется. К примеру, сайт mail.ru, http://mail.ru, ftp://mail.ru, [email protected]. Причём нужно различать физические и логические имена, ведь mail.ru это просто замена ip адресу. В общем, это я так к примеру привёл, но суть то одна.

Автор: neosapient 14.10.2006, 14:18
Упрастим задачу.
(http://forum.vingrad.ru/index.php?act=ST&f=99&t=116427&st=0)
Нашел в рунете пример работы SMTP клиента.
Настроил на себя, а он вот что дает:
Код

get: 220 wsnet.ru ESMTP
send: HELO mail.ru
get: 220 wsnet.ru ESMTP
250 wsnet.ru
send: MAIL FROM:<[email protected]>
get: 220 wsnet.ru ESMTP
250 wsnet.ru
250 Ok
send: RCPT TO:<[email protected]>
get: 220 wsnet.ru ESMTP
250 wsnet.ru
250 Ok
554 <[email protected]>: Recipient address rejected: Relay access denied
send: DATA
get: 220 wsnet.ru ESMTP
250 wsnet.ru
250 Ok
554 <[email protected]>: Recipient address rejected: Relay access denied
503 No recipient(s).
send: HELLO, WORLD!!!

.
get: 220 wsnet.ru ESMTP
250 wsnet.ru
250 Ok
554 <[email protected]>: Recipient address rejected: Relay access denied
503 No recipient(s).
502 Error: command not implemented
send: QUIT


554 - транзакции не проходят, так как
503 - неверная последовательность команд

Помогите разобраться, что не так делаю! smile 

Программа записывает в файле "c:\\socket.log" весь лог работ

И еще, что за wsnet.ru такой, я ж его не вызываю?

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