- Код: Выделить всё
procedure TForm1.AuthClick(Sender: TObject);
begin
try
SMTP.Ehlo(IP.Text); // Передаем свой IP
SMTP.HasFeature('AUTH LOGIN'); // Метод аутентификации.
SMTP.AuthLogin(Login.Text, Password.Text);
except
StatusBar.SimpleText := 'Ошибка аутентификации'
end;
end;
Сам коннект идет через другую кнопку. Разделил чтоб проще понять где косяк. Соединение с сервером проходит без проблем, а вот аутентификация никак. try не ругается. К сожалению логов на сервере на данный счет нет, потому не могу понять в чем проблема.
Для примера как это проходит в telnet:
- Код: Выделить всё
220 [212.248.***.***] Courier Mail Server 2.07 ESMTP service ready
EHLO 85.202.***.**
500 Command not recognized
EHLO 85.202.***.**
250-[212.248.***.***] greets 85.202.***.**
250-SIZE
250-AUTH PLAIN LOGIN CRAM-MD5
250 8BITMIME
AUTH LOGIN
334 VXNlcm5hbWU6
cm9vwdEBetb3fJlbWsQFuLnJ1
334 UGFzc3dvcmQ6
cGf1kdamRaFy
235 Authentication successful
Как видно когда ввожу первый раз EHLO вылазит ошибка 500, синтаксическая ошибка. После повторного раза работает без проблем. Такое же есть у Yandex. Уж не знаю защита это или что.
Добавлено спустя 13 часов 29 минут 33 секунды:
Неужели никто подобное не делал? Может другой вариант есть, не через lnet. Я так понял его разработка заглохла. Может synapse? Только не могу его найти под lazarus, вроде существует. Indy как-то не хочется использовать...