This commit is contained in:
Francesco Picone
2025-12-09 17:23:11 +01:00
parent 1ea20d24a0
commit 77377cbaf1

View File

@@ -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;
}