SMTP-AUTH – rozszerzenie protokołu Simple Mail Transfer Protocol o mechanizmy uwierzytelniania. Można wyróżnić dwie podstawowe metody autoryzacji sesji: metodą AUTH PLAIN metodą AUTH LOGIN Każda z nich do komunikacji pomiędzy serwerem a klientem stosuje kodowanie Base64, które samo w sobie nie zapewnia bezpieczeństwa danych.

Aby skorzystać z autoryzacji, klient powinien zamiast standardowego powitania HELO użyć EHLO, które umożliwi wykorzystanie rozszerzonego zestawu poleceń SMTP. W odpowiedzi serwer SMTP powinien zwrócić w powitaniu ciąg znaków "AUTH", a po nim dostępne metody uwierzytelniania.

Opisany jest w .

Przykład sesji SMTP z uwierzytelnianiem AUTH PLAIN Aby uwierzytelnić sesję SMTP należy wygenerować odpowiedni ciąg znaków ("\0użytkownik\0haslo", gdzie \0 oznacza bajt zerowy, jeżeli użytkownik ma mieć pełną nazwę domenową np. [email protected] to przed '@' dajemy znak ucieczki '\' - ("\0uzytkownik\@example.com\0haslo")) za pomocą np. Perla poprzez polecenie: perl -MMIME::Base64 -e 'print encode_base64("\0uzytkownik\0haslo");' wynikiem będzie: AHV6eXRrb3duaWsAaGFzbG8= Gdzie zwykła sesja już będzie wyglądać w taki sposób: 220 serwer ESMTP EHLO serwer.email.com 250-serwer Hello user at localhost [127.0.0.1] 250-AUTH PLAIN LOGIN 250 HELP AUTH PLAIN 334 ok.