titanum
15-05-2013, 17:22
Ciao ragazzi,
oggi ho realizzato uno script per inviare una mail con contenuto html, il cui codice è questo:
<?
//change this to your email.
$to = "xxxxxxxxx@gmail.com";
$from = "xxxxxxxx@virgilio.it";
$subject = "Hello! This is HTML email";
//begin of HTML message
$message = "<br>*** Prova invio email html<br> visita <a href=http://www.sito.org >www.sito.org</a>";
// To send the HTML mail we need to set the Content-type header.
$headers = "From: mittente <$from>";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
// now lets send the email.
$ris = mail($to, $subject, $message, $headers);
echo "Message has been sent....!";
?>
Lo script funziona, il problema è che ho provato ad inserire lo stesso codice in un file che effettua un ciclo while per inviare la mail a più utenti, e non funziona più, le mail arrivano ma i tag html vengono mostrati e non interpretati e al posto del mittente trovo scritto apache server e non il mio indirizzo.
Lo spazio web è lo stesso, cambia solo la cartella in cui risiedono i file.
Da che dipende? Grazie
Questo è il codice che non funziona correttamente
<?php
//prendo i valori dalla form
$titolo=$_GET["titolo"];
$testo=$_GET["testo"];
$gruppoDestinatario=$_GET["gruppo"];
// codice per collegarsi al db e salvare il messaggio
//invia la mail agli utenti del gruppo selezionato
$headers = "From: {$datiMittente["nomeMittente"]} <{$datiMittente["emailMittente"]}>\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$oggetto = "$titolo";
if($gruppoDestinatario=="tutti") {
$query_utenti="SELECT * FROM utenti";
}
else
$query_utenti="SELECT * FROM utenti WHERE nomeGruppo='$gruppoDestinatario'";
$ris=mysql_query($query_utenti,$myconn);
while($riga=mysql_fetch_array($ris)){
$email = $riga['email'];
$messaggio = "$testo";
mail($email, $oggetto, $messaggio, $header);
}
header("Location: gestioneMessaggi.php?status=1");
}
?>
oggi ho realizzato uno script per inviare una mail con contenuto html, il cui codice è questo:
<?
//change this to your email.
$to = "xxxxxxxxx@gmail.com";
$from = "xxxxxxxx@virgilio.it";
$subject = "Hello! This is HTML email";
//begin of HTML message
$message = "<br>*** Prova invio email html<br> visita <a href=http://www.sito.org >www.sito.org</a>";
// To send the HTML mail we need to set the Content-type header.
$headers = "From: mittente <$from>";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
// now lets send the email.
$ris = mail($to, $subject, $message, $headers);
echo "Message has been sent....!";
?>
Lo script funziona, il problema è che ho provato ad inserire lo stesso codice in un file che effettua un ciclo while per inviare la mail a più utenti, e non funziona più, le mail arrivano ma i tag html vengono mostrati e non interpretati e al posto del mittente trovo scritto apache server e non il mio indirizzo.
Lo spazio web è lo stesso, cambia solo la cartella in cui risiedono i file.
Da che dipende? Grazie
Questo è il codice che non funziona correttamente
<?php
//prendo i valori dalla form
$titolo=$_GET["titolo"];
$testo=$_GET["testo"];
$gruppoDestinatario=$_GET["gruppo"];
// codice per collegarsi al db e salvare il messaggio
//invia la mail agli utenti del gruppo selezionato
$headers = "From: {$datiMittente["nomeMittente"]} <{$datiMittente["emailMittente"]}>\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$oggetto = "$titolo";
if($gruppoDestinatario=="tutti") {
$query_utenti="SELECT * FROM utenti";
}
else
$query_utenti="SELECT * FROM utenti WHERE nomeGruppo='$gruppoDestinatario'";
$ris=mysql_query($query_utenti,$myconn);
while($riga=mysql_fetch_array($ris)){
$email = $riga['email'];
$messaggio = "$testo";
mail($email, $oggetto, $messaggio, $header);
}
header("Location: gestioneMessaggi.php?status=1");
}
?>