Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C/C++ Сетевое программирование
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.03.2011, 12:46   #1
Ksardas13
Форумчанин
 
Регистрация: 24.03.2011
Сообщений: 120
Вопрос Отсылаем почту по средствам WinSock

Пара вопросов для ликвидации пробелов:

1. Когда мы начинаем общаться с сервером командами HELO и тп, как происходит диалог? Сначала команда сервера("Привет"), потом мы пишем("привет"), потом команда сервера("Что будете делать?"), потом мы отвечаем("Авторизироваться"), потом снова сервер спрашивает("Ваш пароль?"), мы отвечаем ("Пароль такой то") и тп. Так?(спрашиваю, потому что вчера пара статей навели на сомнение как всё таки происходит беседа)

2. Не могу "полноценно побеседовать" с gmail.com. На попытку авторизации и вообще любых действий после "приветствия" пишет "Must issue a STARTTLS command first.". Погуглил - выяснил что это некое защищённое соединение TLS. Как его реализовать в программе пока не нашёл. Кто может помочь?

3. Настройки почтовых серверов брал отсюда forum.mozilla-russia.org. Вот везде(ну может не везде, но на smtp.yandex.ru точно... остальные вроде тоже... тестить все в данную минуту времени нет), где порт 25, подконектиться к серверу не могу.
Привожу код моего мега подконекчивания(заранее предупреждаю критиков - часть с определением ip по имени сайта вносит грязь, дописывалась в торопях... до этого её не было, закидывал в функцию сразу айпишник серва)(а, и да, процедура logging - это просто вывод строки на экран... типа "cout<<"...):
Цитата:
int start_client_by_hostname(char *host_name,int port)
{
//Инициализация wsock32.dll.
WSADATA wsaData;
WORD ver = MAKEWORD(2,2);//версия winsock
if (WSAStartup(ver,&wsaData)) {logging("Ошибка инициализации wsock32.dll.\n");return FALSE;}
//Определили IP адрес по имени
logging("Имя сервера:");logging(host_name);loggi ng("\n");//вывод на экран
HOSTENT *sh; char *ip_adres;
sh=gethostbyname(host_name);
struct sockaddr_in adr;
memcpy(&adr.sin_addr,sh->h_addr_list[0],sh->h_length);
ip_adres=inet_ntoa(adr.sin_addr);
logging("IP адресс сервера:");logging(ip_adres);loggin g("\n");//вывод на экран
//Создание сокета.
clientsocket=socket(AF_INET,SOCK_ST REAM,IPPROTO_TCP);
if (clientsocket==INVALID_SOCKET) {logging("Ошибка создания сокета.\n");return FALSE;}
//Конектимся к серверу.
SOCKADDR_IN server_info;
server_info.sin_family = AF_INET;
server_info.sin_addr.S_un.S_addr = inet_addr(ip_adres);
server_info.sin_port = htons(port);
if (connect(clientsocket,(LPSOCKADDR)& server_info, sizeof(server_info))==SOCKET_ERROR)
{logging("Ошибка подключения к серверу.\n");return FALSE;}
return TRUE;
}
Выдаёт "Ошибка подключение к серверу". Почему?
Проверял тут speed-tester.info 25-ый порт сервера - он открыт. Но всёравно соединиться не получается. Зато там где порты 110, 995 или 587(на gmail и mail и тп) всё конектится. В чём моя ошибка?

4. Для авторизации требуется ввести пароль и логин в зашифрованном в Base64 виде. Кто поможет и подкинет мне процедуру шифрования строки в Base64?))))
Или хотя бы мануал по этому делу - что это за шифрование и по какому принципу проходит?(если нет, буду гуглить ;( но так хочется схватиться за руку помощи и преодолеть посредственные этапы разработки)))))

5. А можно отослать письмо на емэил, скажем bla_bla_bla@mail.ru, не авторизировавшись? Т.е. подконектиться к серверу mail.ru и отослать письмо с компьютера. Если да, то как? И что писать в поле MAIL FROM?

Хм, вроде пока это всё))

Последний раз редактировалось Ksardas13; 31.03.2011 в 13:04.
Ksardas13 вне форума Ответить с цитированием
Старый 31.03.2011, 12:57   #2
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

> В чём моя ошибка?

многие провайдеры блокируют 25 порт
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пропорциональное изменение jpg-файлов средствам Borland С++ Builder Smitt&Wesson C++ Builder 2 11.10.2019 17:01
шифрования полей по средствам SQL MAKSA БД в Delphi 12 10.12.2012 21:00
Вывести символы HEX таблицы по средствам BIOS S.T.A.L.K.E,R Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 16.11.2010 02:21
зашифровать слово по средствам другого алфавита? brans Microsoft Office Excel 16 21.10.2010 18:00
Скачивание файла из сети, по средствам TcpClient. papa_serg Работа с сетью в Delphi 6 01.04.2008 23:22