Invio mail con SMTP fallito

Invio mail con SMTP fallito

di Antonio Pistoia -
Numero di risposte: 3

Ho un server Linux versione UBUNTU server 16.04 su cui ho installato la versione MOODLE3.8 con php 7.2 e certificati SSL forniti da GoDaddy. non riesco ad inviare le mail

Ho provato a verificare l'invio attraverso il plugin "Test email" ed il risultato visualizzato dal debug è il seguente:

2021-01-05 11:13:49	Connection: opening to smtp.office365.com:587, timeout=300, options=array()
2021-01-05 11:13:49	Connection: opened
2021-01-05 11:13:49	SERVER -> CLIENT: 220 ZR0P278CA0057.outlook.office365.com ESMTP Service ready
2021-01-05 11:13:49	CLIENT -> SERVER: EHLO xxxxx.yyyyy.it
2021-01-05 11:13:49	SERVER -> CLIENT: 250-Requested mail action okay, completed
                   	                  250-SIZE 20000000
                   	                  250-8BITMIME
                   	                  250-STARTTLS
                   	                  250 OK
2021-01-05 11:13:49	CLIENT -> SERVER: STARTTLS
2021-01-05 11:13:49	SERVER -> CLIENT: 220 Ready to start TLS
2021-01-05 11:13:49	Connection failed. Error #2: stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages:
                   	                  error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed [/var/www/html/moodle/lib/phpmailer/src/SMTP.php line 405]
2021-01-05 11:13:49	SMTP Error: Could not connect to SMTP host.
2021-01-05 11:13:49	CLIENT -> SERVER: QUIT
2021-01-05 11:13:49	SERVER -> CLIENT: ,( c������6%:�
                   	                  �����^߃�^�rG{V�o}^*@i2��س��\~��8@+���������"�������i�,��:��[##��j��hǽ��\fl�A���E�M��n\�\,9��h׉�j7ֹ��\��S^g�!=+�T_��1��G[���˖�:�Cj⋮`B*��|��0pn����":pލ�Y�m����
                   	                  �ٸ@%����}W��)|5{_S�4b�I*9�ډ�;4����FT�V��9�@�Zj�p����1;p�^�u�,c$�Q
2021-01-05 11:13:49	SMTP ERROR: QUIT command failed: ,( c������6%:�
                   	                  �����^߃�^�rG{V�o}^*@i2��س��\~��8@+���������"�������i�,��:��[##��j��hǽ��\fl�A���E�M��n\�\,9��h׉�j7ֹ��\��S^g�!=+�T_��1��G[���˖�:�Cj⋮`B*��|��0pn����":pލ�Y�m����
                   	                  �ٸ@%����}W��)|5{_S�4b�I*9�ډ�;4����FT�V��9�@�Zj�p����1;p�^�u�,c$�Q
2021-01-05 11:13:49	Connection: closed
2021-01-05 11:13:49	SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
Ho cercato sia sul blog che in generale su Internet, ma non ho trovato soluzioni valide.

Come si può risolvere?

Media dei voti:  -
In riposta a Antonio Pistoia

Ri: Invio mail con SMTP fallito

di Sergio Rabellino -
Immagine Particularly helpful Moodlers Immagine Plugin developers
L'errore è questo: "certificate verify failed" ovvero il tuo sistema non ha i necessari certificati di CA (Certification Authorities) sufficienti a verificare il certificato presentato dal server smtp contattato (smtp.office365.com:587).

Ubuntu 16 comincia ad essere datato, ma verifica con un

apt-get install ca-certificates -y

o un apt-get update/upgrade di ca-certificates e poi puoi provare così da CLI:

openssl s_client -connect smtp.office365.com:587 -starttls smtp

se il tuo sistema ha i certificati a posto, ottieni in coda un messaggio tipo " Verify return code: 0 (ok)". Altrimenti devi cercare come aggiornare a mano l'elenco dei certificati di CA su ubuntu 16.04, tipicamente si scaricano da mozilla.
In riposta a Sergio Rabellino

Ri: Invio mail con SMTP fallito

di Antonio Pistoia -
Purtroppo quando eseguo la verifica mi ritorna l'errore 19.

PSK identity: None
PSK identity hint: None
SRP username: None
Start Time: 1610125331
Timeout : 7200 (sec)
-->Verify return code: 19 (self signed certificate in certificate chain)
Extended master secret: yes
---
250 OK
In riposta a Antonio Pistoia

Ri: Invio mail con SMTP fallito

di Sergio Rabellino -
Immagine Particularly helpful Moodlers Immagine Plugin developers
Ipotizzo che questo accada perchè il server SMTP ti ritorna la sua chain di certificati, ma non avendo tu la prima CA di questa catena come "trusted" lui vede solo un certificato self-signed, ma non trusted.

Se non già fatto, tenta questo: http://manpages.ubuntu.com/manpages/xenial/man8/update-ca-certificates.8.html

Nb. non è un problema di moodle questo, ma di sistema operativo. sorridente