Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Войти
 
Страницы: 1
RSS
как узнать, могу ли я законекиться на почтовый сервак с данным логином и паролем?, Юзается C#
 
в общем, проблема в сабж, но вот как я делал

               MailMessage m = new MailMessage(USER, <мое мыло>, subj, body);
               SmtpClient s = new SmtpClient("smtp.mail.ru", 25);
               s.Credentials = new NetworkCredential(USER, PASS);
               try
               {
                     s.send(m);
                     MesageBox.Show("Письмо отправлено");
               }
               catch .....

так вот, эо долго, как мне кажется, и не рационально. и еще во время тестинга программы приходит по несколько десятков писем :)
подскажите, плиз
 
ну отпишите что-то. желательно, по вопросу)
 
Открываешь описание smtp протокола
http://ru.wikipedia.org/wiki/SMTP
Далее сокетом соединяешься с сервером и анализируешь ответ на попытку авторизации
 
спасибо, сейчас попробую. только я пока не нашел комманды авторизации для SMTP
 
Погугли пример с командой EHLO
 
да, уже нагуглил. теперь гуглю, почему у меня 554 Synchronization error)
 
нашел, что сервак не успевает ответить, когда я уже следующий запрос подаю, но я только подконектился и отослал EHLO и все, почему ошибка 554?
 
А ты дождался приветствия сервера ?
 
да, конечно.
у меня конект, потом ресив(там приветствие сервера), потом запрос EHLO и ресив уже с 554 синхронизейшн еррор
 
понял, ошибка была в масиве байт. я руками троку в масив байт переводил, а надо было юзать  Encoding.ASCII.GetBytes(mess)
 
Была похожая проблема. Везде пишут что это связано с борьбой со спамерами и советуют делают паузу между передачами, но это гонево, проблема в другом.

Можно решить проблему без использования перекодировки через Encoding.ASCII.GetBytes(mess) следующим образом:

send(s, "EHLO smtp.hotbox.ru\xD\xA\x0", strlen("EHLO smtp.hotbox.ru\xD\xA\x0"), 0);
recv(s, text, sizeof(text), 0);
Страницы: 1
Читают тему