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