Ciao a tutti!!
Ho un grandissimo, grossissimo, immenso problema che persiste da molto tempo.
Ho provato a cercare ovunque, ma ho riscontrato solo risposte negative.
Il problema è il seguente:
Ho creato una mailing list oer un sito che "alloggia" su aruba. Il problema è che la mail inviata dal cliente, non arriva agli utenti che hanno una account di posta su libero.
Leggendo un po' in giro ho potuto notare che praticamente tutti i programmatori hanno questo problema.
Ho provato ad effettuare diverse modifiche al codice, ma il risultato non è mai cambiato: agli utenti che usano libero mail non arriva il messaggio.
Non riesco proprio a darmi pace.
Vi posto il codice php "di partenza" e il codice php modificato.
Codice di partenza:
Codice PHP:
if(isset($_POST['send'])&&($_POST['send']=='send')){
if((isset($_POST['oggetto'])) && ($_POST['oggetto']!="") && (isset($_POST['messaggio'])) && ($_POST['messaggio']!="")){
$ogg=stripcslashes(clean($_POST['oggetto']));
$mex=stripcslashes($_POST['messaggio']);
$header = "From: [email]info@sito.it[/email]\n";
$header .= "Reply-To: [email]info@sito.it[/email]\r\n";
$header .= "Return-Path: [email]info@sito.it[/email]\r\n";
$header .= "MIME-Version: 1.0\r\n";
$header .= "Content-Type: text/html; charset=\"utf-8\"\r\n";
$header .= "Content-Transfer-Encoding: 7bit\r\n";
$result=mysql_query("SELECT * FROM TABLE_Mailing ORDER BY email ASC") or die(mysql_error());
while($row=mysql_fetch_array($result)){
$a=stripcslashes($row['email']);
$mail="<html><body>".$mex."
<p style=\"font-size: 12px;\">Riceve questa mail perché registrato alla mailing list del sito [url]www.sito.it.[/url] <a href=\"http://www.sito.it/cancellami.php?mail=".$row['email']."\">Può cancellarsi in ogni momento cliccando qui</a></p></body></html>";
mail($a, $ogg, $mail, $header);
}
$invio = true;
}
else $invio = false;
}
Codice modificato:
Codice PHP:
ini_set("SMTP","smtp.aruba.it"); /*imposta smtp di aruba*/
if(isset($_POST['send'])&&($_POST['send']=='send')){
if((isset($_POST['oggetto'])) && ($_POST['oggetto']!="") && (isset($_POST['messaggio'])) && ($_POST['messaggio']!="")){
$ogg=mysql_real_escape_string($_POST['oggetto']);
$mex=stripcslashes($_POST['messaggio']);
$header = "From: [email]info@sito.it[/email]\r\n";
$header .= "Reply-To: [email]info@sito.it[/email]\r\n";
$header .= "Return-Path: [email]info@sito.it[/email]\r\n";
$header .= "Content-Type: text/html; charset=\"utf-8\"\r\n";
$header .= "Content-Transfer-Encoding: 7bit\n\n";
$result=mysql_query("SELECT * FROM TABLE_Mailing ORDER BY email ASC") or die(mysql_error());
while($row=mysql_fetch_array($result)){
$a=stripcslashes($row['email']);
$header.= "X-Sender: <$a>\r\n"; /*Il mittente*/
$header.= "X-Mailer: PHP/".phpversion();
$header .= "Message-ID: <" . md5(uniqid(time().mt_rand())) ."@" .$_SERVER['SERVER_NAME'] .">\r\n";
$mail="<html><body>".$mex."
<p style=\"font-size: 12px;\">Riceve questa mail perché registrato alla mailing list del sito [url]www.sito.it.[/url] <a href=\"http://www.sito.it/cancellami.php?mail=".$row['email']."\">Può cancellarsi in ogni momento cliccando qui</a></p></body></html>";
mail($a, $ogg, $mail, $header);
}
$invio = true;
}
else $invio = false;
}
Ma agli utenti che hanno un account libero la mail non arriva in nessuno dei casi...
Per favore ho urgente bisogno di aiuto...