Podczas korzystania z STARTTLS
port nasłuchiwania serwera jest początkowo niezaszyfrowany po połączeniu. Gdy klient łączy się, może wysłać opcjonalne polecenie STARTTLS
do serwera, jeśli serwer go obsługuje, aby dynamicznie wykonać uzgadnianie SSL/TLS w tym czasie. Dzięki temu starsze klienty inne niż SSL/TLS mogą kontynuować łączenie się z tym samym portem, a nowi klienci korzystający z protokołu SSL/TLS mogą korzystać z protokołu SSL/TLS, jeśli jest on dostępny na serwerze. Odpowiada to UseTLS=utUseExplicitTLS
w Indy. Należy ustawić wartość UseEHLO
na wartość True, aby użyć UseTLS=utUseExplicitTLS
, ponieważ komenda EHLO
określa, w jaki sposób TIdSMTP
odkrywa, czy serwer obsługuje polecenie , czy też nie.
Podczas korzystania z SSL/TLS
zamiast STARTTLS
, port nasłuchiwania serwera zawsze używa szyfrowania, a klient musi zainicjować uzgadnianie SSL/TLS natychmiast po nawiązaniu połączenia, zanim jakiekolwiek inne dane będą mogły zostać wymienione. Odpowiada to UseTLS=utUseImplicitTLS
w Indy. Nie użyto polecenia STARTTLS
.
celu uwierzytelniania TIdSMTP
dwie opcje - starego (i niezabezpieczone) AUTH LOGIN
polecenia, która jest określona przez pierwotny specyfikacji SMTP i rozszerzenia protokołu SMTP o SASL opartych algorytmów mieszania/szyfrowania (Kerberos gssapi NTLM itp zaimplementowanych jako algorytmy SASL).
Aby korzystać SASL ustaw TIdSMTP.AuthType
do satSASL
a następnie wypełnić kolekcji TIdSMTP.SASLMechanisms
wskazać na oddzielnych TIdSASL
pochodzące z A komponentów dla algorytmów, które mają wspierać w swojej aplikacji. Indy ma rodzimych składników SASL do DIGEST-MD5
, CRAM-MD5
, CRAM-SHA1
, NTLM
(doświadczeń), ANONYMOUS
, EXTERNAL
, OTP
, PLAIN
, SKEY
i LOGIN
(SASL opakowującym AUTH LOGIN
). Jeśli potrzebujesz innego algorytmu (na przykład Kerberos lub GSSAPI), będziesz musiał napisać swój własny komponent TIdSASL
. W przypadku algorytmów używających nazwy użytkownika/hasła wartości muszą być przypisane do oddzielnego składnika TIdUserPassProvider
, który jest następnie przypisywany do komponentów SASL (właściwości TIdSMTP.UserName
i TIdSMTP.Password
nie są używane w przypadku SASL).Im więcej obsługujesz algorytmów SASL, tym więcej serwerów możesz obsługiwać.
przypadku serwerów, które nadal obsługują AUTH LOGIN
, może być stosowany zarówno przez ustawienie TIdSMTP.AuthType
do satDefault
(i ewentualnie ustawienie TIdSMTP.ValidateAuthLoginCapability
False, jeśli serwer obsługuje AUTH LOGIN
ale nie zgłasza go w odpowiedzi na komendę EHLO
), a następnie wypełnienie TIdSMTP.UserName
i TIdSMTP.Password
właściwości lub przez włączenie komponentu TIdSASLLogin
w kolekcji TIdSMTP.SASLMechanisms
.
i nie mają nic wspólnego z bezpieczeństwem. VERP
to rozszerzenie SMTP do wykrywania odbijanych wiadomości e-mail z powodu niedoręczalnych błędów. Nagle jest algorytmem sieciowym do optymalizacji pakietów danych sieciowych.
Dzięki za wspaniałą odpowiedź! –
Świetna odpowiedź! Dodaję to do moich zakładek. –
@Remy Lebeau Nie wspomniałeś o 'UseTLS = utRequireTLS', co dokładnie robi ta opcja? –