Smtp-аутентификация
Помогите мне пожалуйста с решением следующей проблемы,
У меня есть простое приложение использующее SMTP протокол для отсылки почты. Алгоритм ядра приложения простой и состоит из следующих этапов:
(тут описываются действия и обмен данными)
1 Соединение с сервером на 25-м протоколе (WinSock/socket соединение)
2 HELO microsoft.com (в качестве примера)
3 MAIL FROM:<bgates@microsoft.com>
4 RCPT TO:<testuser@test.com>
5 DATA
6 Привет
7 .
8 QUIT
9 Разрыв соединения (closesocket/close и.т.д.)
Проблема возникает в том, что многие сервера (в частности те с которыми приложение должно работать) требуют аутентификацию и на попытку послать сообщение пользователю, чей ящик располагается на хосте различном от того с чьим SMTP сервисом я работаю (к примеру, при попытке отослать с host1 на host2 выдается ошибка, тогда как с того же хоста на тот же хост все проходит нормально) выдают мне следующую ошибку (на шаге 4-м вышеизложенного листинга):
473 [email]asfgrg@blabla.com[/email] relaying prohibited. You should authenticate first
Насколько я понимаю, требуемая аутентификация это не POP-before-SMTP метод (т.е. когда надо залогониться на POP3 для последующей работы с SMTP) (он у меня так и не сработал когда я тестил mail-сервер через telnet), а использование расширений SMTP согласно RFC1651 и в частности RFC2554, и насколько я понимаю здесь имеется в виду использование AUTH.
Если кто-то из вас уже использовал SMTP-аутентификацию то просьба приведите мне пожалуйста пример диалога с сервером, т.е. листинг запросов которые мне ему нужно посылать для аутентификации.
Заранее спасибо за любой ответ.