Неверное имя HELO при отправке с TIDSmtp - PullRequest
0 голосов
/ 20 января 2020

При использовании Delphi 2007 и Indy 10.6.2.0 у меня появляется ошибка ниже при попытке использовать TIdSMTP в указанной учетной записи c:

Доступ запрещен - недействительно HELO name (см. RFC2821 4.1.1.1)

Впервые я вижу эту ошибку. Другие аккаунты отправляют без проблем. Из-за соображений безопасности я не могу предоставить учетные данные, но учетная запись находится на порту 587 и использует SSL со следующими параметрами:

SSLOptions.Method := sslvTLSv1;
SSLOptions.VerifyMode := [];
SSLOptions.VerifyDepth := 0;
OnStatusInfo := ssl1statusinfo;

1 Ответ

1 голос
/ 20 января 2020

Как отметил @whosrdaddy в комментариях, TIdSMTP.HeloName - это решение вашей ошибки. Это не проблема аутентификации или SSL. Задайте HeloName для соответствующего имени хоста DNS, представляющего вашего клиента, например, от GetComputerNameEx() или, по крайней мере, от вашего публичного c IP-адреса. Если вы не установите HeloName, TIdSMTP использует имя хоста или имя компьютера локального компьютера, которое может или не может быть в формате свойства DNS для SMTP-сервера для принятия, в зависимости от конфигурации. Некоторые серверы не заботятся об этом, но некоторые заботятся.

...