fix
This commit is contained in:
@@ -470,12 +470,32 @@ function send_smtp_email($to, $subject, $message) {
|
||||
// Inizia TLS se richiesto
|
||||
if (SMTP_ENCRYPTION === 'tls') {
|
||||
$send("STARTTLS");
|
||||
$read();
|
||||
$response = $read();
|
||||
|
||||
// Usa una versione più compatibile di TLS
|
||||
$crypto_method = STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT | STREAM_CRYPTO_METHOD_TLSv1_3_CLIENT;
|
||||
if (!stream_socket_enable_crypto($smtp, true, $crypto_method)) {
|
||||
error_log("SMTP Error: Impossibile avviare crittografia TLS");
|
||||
// Verifica risposta 220
|
||||
if (strpos($response, '220') !== 0) {
|
||||
error_log("SMTP Error: STARTTLS fallito - " . $response);
|
||||
fclose($smtp);
|
||||
return false;
|
||||
}
|
||||
|
||||
// Abilita TLS con metodo compatibile (fallback automatico tra TLSv1.2, TLSv1.1, TLSv1.0)
|
||||
$crypto_methods = [
|
||||
STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT,
|
||||
STREAM_CRYPTO_METHOD_TLS_CLIENT,
|
||||
STREAM_CRYPTO_METHOD_SSLv23_CLIENT
|
||||
];
|
||||
|
||||
$tls_enabled = false;
|
||||
foreach ($crypto_methods as $method) {
|
||||
if (@stream_socket_enable_crypto($smtp, true, $method)) {
|
||||
$tls_enabled = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!$tls_enabled) {
|
||||
error_log("SMTP Error: Impossibile avviare crittografia TLS con nessun metodo");
|
||||
fclose($smtp);
|
||||
return false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user