Invio corretto email in HTML

Salve..

So che già una discussione simile è stata aperta ma comunque non è riuscita a risolvere i miei dubbi.

Il problema è il seguente: il mio script invia una email in HTML per confermare la registrazione utente.

Questo è il codice:

$oggetto = "Recupero dati di login";

$messaggio = "
<html>
<head>
<title>Recupero dati di login</title>
</head>
<body>
<p><b>$sito</b></p>
<br />E' stato richiesto il cambio della password per l'account $username<br />
<br /><br />Per procedere al cambio della password <a href=\"$urlsito/lost_password.php?action=edit_password&id=$id&key=$crypt_key\">clicca qui</a>
<br />Se non sei stato tu a richiedere la sostituzione della password basta ignorare questo messaggio.
</p>
</body>
</html>";

$intestazioni  = "MIME-Version: 1.0\r\n";
$intestazioni .= "Content-type: text/html; charset=iso-8859-1\r\n";

$intestazioni .= "To: $username <$email>\r\n";
$intestazioni .= "From: $sito <$web_mail>\r\n";

mail($email, $oggetto, $messaggio, $intestazioni);

Mi è stato segnalato da un utente che la mail non viene inviata correttamente. Io con Gmail non ho nessun problema. Questo utente usa Outlook e mi ha segnalato che visualizza l'email in questo modo:

Content-type: text/html; charset=iso-8859-1

To: NEO <email@censurata.com>

From: Login <email@censurata.com>

X-Antivirus: avast! (VPS 000777-4, 30/09/2007), Inbound message

X-Antivirus-Status: Clean

           <html>

           <head>

           <title>Recupero dati di login</title>

           </head>

           <body>

           <p><b>Nome sito</b></p>

           <br />E' stato richiesto il cambio della password per l'account

NEO<br />

           <br /><br />Per procedere al cambio della password <a

href="http://www.xxxxxxx.com/login/lost_password.php?action=edit_password&id=1&key=ae0b5c491f1dc60a0d30df7593c28a38">clicca

qui</a>

           <br />Se non sei stato tu a richiedere la sostituzione della

password basta ignorare questo messaggio.

           </p>

           </body>

           </html>

In pratica non riconosce l'HTML e inoltre nell'elenco delle email non appare il nome del mittente.

Qualcuno può aiutarmi?

Grazie

inviato 9 anni fa
NeO_Giu
modificato 9 anni fa
X 0 X

c'è qualcosa che non va nel codice: il primo parametro passato alla funzione mail è $email e dovrebbe contenere l'indirizzo del destinatario nel formato:

user@example.com

user@example.com, anotheruser@example.com

User <user@example.com>

User <user@example.com>, Another User <anotheruser@example.com>

mal tuo codice invece $email non sembra avere valore, mentre il destinatario viene passato come una intestazione...

 :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

Non ho capito cosa intendi... Naturalmente quel pezzo di codice è stato estrapolato dal suo contesto...

Naturalmente prima avevo dichiarato $email come $email=$_POST["email"];

risposto 9 anni fa
NeO_Giu
X 0 X

questa riga non dovrebbe esserci:

$intestazioni .= "To: $username <$email>\r\n";

perché il destinatario non dovrebbe trovarsi nelle intestazioni

 :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda