Nota: questo how-to è applicabile a tutte le versioni Plesk per Linux.

Quando proviamo ad effettuare l’autenticazione su server SMTP (Postfix) installato tramite il pannello Plesk e riceviamo l’errore:

SMTP Error (250): Authentication failed

Significa principalmente che per qualche motivo il server non accetta alcuna autenticazione, ovvero non è possibile loggarsi. Per verificare questa condizione, proviamo innanzitutto a collegarci da un terminale al server SMTP utilizzando telnet. (Se avete un Mac e non avete telnet installato, leggete l’articolo su come installare telnet sul Mac)

mac:~ lucamurante$ telnet google.com 25
Trying google.com...
Connected to google.com.
Escape character is '^]'.
220 google.com ESMTP Postfix

Una volta collegati, diamo il comando EHLO indirizzo_del_server per scoprire quali opzioni offre attualmente il server:

EHLO google.com
250-oogle.com
250-PIPELINING
250-SIZE 30720000
250-ETRN
250-STARTTLS
250-AUTH CRAM-MD5 LOGIN PLAIN DIGEST-MD5
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN

Se non vediamo alcun metodo AUTH (nel mio esempio è presente!), il server non accetterà alcun tipo di autenticazione e, di conseguenza, nessun tipo di invio (nella maggior parte dei casi). Per effettuare un controllo ulteriore, sulla macchina sulla quale è installato Plesk, andiamo a leggere il file log della webmail Roundcube che è situato in /var/log/plesk-roundcube/errors . Per farlo, leggiamo questo file di log, come da esempio:

tail -n 100 /var/log/plesk-roundcube/errors

Troveremo una o più righe di log simili a questa:

SMTP Error: Authentication failure: SMTP server does not support authentication (Code: ) in /usr/share/psa-roundcube/program/lib/Roundcube/rcube.php on line 1667 (POST /?_task=mail&_unlock=loading1554712039855&_lang=en_US&_framed=1&_action=send)

Piccola nota: abbiamo utilizzato il comando tail che mostra la fine del file: nel nostro caso le ultime 100 righe. Cambiate questo valore per visualizzare righe di log più vecchie.

Se tutti gli indizi sono corretti, il problema è riconducibile ad una errata configurazione di Postfix, vediamo quindi come risolvere questo problema.

E risolviamolo

Per prima cosa, connettiamoci via SSH al nostro server. Secondo passo, sarà quello di verificare che nella configurazione di Postfix vi siano le direttive smtpd_tls_protocols, smtpd_tls_ciphers, smtpd_tls_security_level e smtpd_sasl_auth_enable . Lo facciamo andando a cercare direttamente, appunto, nel file di configurazione assicuriamoci che siano configurate così:

# grep -E "smtpd_tls_protocols|smtpd_tls_security_level|smtpd_tls_ciphers|smtpd_use_tls|smtpd_sasl_auth_enable" /etc/postfix/main.cf
smtpd_use_tls = yes
smtpd_tls_security_level = may
smtpd_tls_ciphers = medium
smtpd_tls_protocols = TLSv1 TLSv1.1 TLSv1.2
smtpd_sasl_auth_enable = yes

Fatto questo, dovremmo controllare che le direttive smtpd_tls_exclude_ciphers  smtpd_sasl_security_options, smtpd_tls_auth_only and tls_ssl_option invece, NON ci siano. Per farlo, diamo un comando analogo al precedente:

# grep -E "smtpd_tls_exclude_ciphers|smtpd_sasl_security_options|smtpd_tls_auth_only|tls_ssl_options" /etc/postfix/main.cf

In questo caso l’output deve essere vuoto. Bene, una volta che ci siamo assicurati che la configurazione sia corretta, possiamo riavviare Postfix:

# service postfix reload