Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Авторизация на SMTP сервере

279
17 августа 2007 года
bave
456 / / 07.03.2004
Для рассылки уведомлений о некоторых действиях пользователей у меня было организовано отправка писем через SMTP своего провайдера.
И всё то было ничего, до тех пор пока не возникла необходимость использования другого SMTP сервера, который зараза требует авторизации.
---------------------------------
1. Вообщем теперь после HELO, я отправляю серверу AUTH LOGIN
На что сервер мне отвечает: 334 VXNlcm5hbWU6

Если я серверу просто логин свой отправляю - он его не принимает.
Я так понимаю вот из этого VXNlcm5hbWU6 и своего логина мне надо
как-то сформировать ответ серверу. Как?

2. Когда искал решение этой проблемы - накнулся на похожую
тему на форуме, где предлогалось здороваться с сервером не
HELO, а EHLO. Команды EHLO в RFC 821 я вообще не нащёл - чем она
отличается от HELO и стоит ли её использовать?
2
18 августа 2007 года
squirL
5.6K / / 13.08.2003
[COLOR=#008000]www.protocols.ru/files/RFC/RFC-2821.pdf [/COLOR]
изучаем. RFC-821 давно устарел ;)

просто логин не надо. надо адрес, ЕМНИП. просто вводить login и пароль plain текстом - не канает их надо в base64 конвертить в виде \0username\0password. например тут
http://www.webpan.com/customers/Email/base64_conversion.htm
или
 
Код:
perl -MMIME::Base64 -e 'print encode_base64("\0username\0password");'
279
19 августа 2007 года
bave
456 / / 07.03.2004
Спасибо.
Переделал, так:
Код:
//...
send(m_smtpsocket, m_base64Login, strlen(m_base64Login), 0);
send(m_smtpsocket, "\r\n", 2, 0);
recv(m_smtpsocket, szAnswer,  255, 0);

if(!isReplay(szAnswer, "334"))
{
//...

}
send(m_smtpsocket, m_base64Pass, strlen(m_base64Pass), 0);
send(m_smtpsocket, "\r\n", 2, 0);
recv(m_smtpsocket, szAnswer,  255, 0);

if(!isReplay(szAnswer, "235"))
{
//...
}

Теперь работает. Сервер отвечает - 235 Authentication successful.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог