Salve a tutti!

Da diversi giorni ho un problema usando un cms e questo problema sta che molte mail che invia per l'attivazione dell'account vengono spostate in posta indesiderata e quindi non permette a quella persona di confermare l'account facendomi perdere anche a me un'iscritto.

Vorrei sapere da voi + esperti se notate qualche problema in questo codice da essere visto come spam


//------------------------------------------------
// Send email
//------------------------------------------------
if (@mail($to, $subject, $body, $headers))
return 1;
else
return 0;
}
//------------------------------------------------
// Check if this is SMTP
//------------------------------------------------
elseif ($PREFS->conf['mail_type'] == "smtp")
{
//------------------------------------------------
// Include SMTP class
//------------------------------------------------
include_once SYS_PATH . 'includes/core.smtp.php';


//------------------------------------------------
// Set parameters
//------------------------------------------------
$params['host'] = $PREFS->conf['smtp_hostname'];
$params['port'] = $PREFS->conf['smtp_port'];
$params['user'] = $PREFS->conf['smtp_username'];
$params['pass'] = $PREFS->conf['smtp_password'];


if ($PREFS->conf['html_emails']) {
$send_params['headers'] = array('From: "' . $from_name . '" <' . $from_email . '>',
'To: ' . $to,
'Subject: ' . $subject,
'MIME-Version: 1.0',
'Content-Type: text/html; charset=utf-8',
'Content-Transfer-Encoding: 8bit',
'Date: ' . strftime("%a, %d %b %Y %H:%M:%S %Z"));
}
else {
$send_params['headers'] = array('From: "' . $from_name . '" <' . $from_email . '>',
'To: ' . $to,
'Subject: ' . $subject,
'Content-Type: text/plain; charset=utf-8',
'Content-Transfer-Encoding: 8bit',
'Date: ' . strftime("%a, %d %b %Y %H:%M:%S %Z"));
$format = "Content-Type: text/plain;";
}

//------------------------------------------------
// Set headers
//------------------------------------------------
$send_params['recipients'] = array($to);
$send_params['from'] = $from_email;
$send_params['body'] = "$body";


//------------------------------------------------
// Send email
//------------------------------------------------
if(is_object($smtp = smtp::connect($params)) AND $smtp->send($send_params))
return 1;
else
return 0;
}
}
// End function

Logicamente ho provato in tutti i modi, cambiare mittente, cambiare mail, cambiare contenuto del messaggio e dell'oggetto, ma niente, le mail che le giudica come spam, sono sempre giudicate come spam e a questo punto penso sia qualche problema di script.

Spero che potete darmi qualche consiglio.

Grazie in anticipo!