Ciao
sto sviluppando una piccola applicazione web in cui ad un certo punto devo prendere tutti gli indirizzi email presenti in un db e inviare una mail a ciascuno di loro...
vorrei però evitare di inserirli nel primo parametro della funzione mail(), per evitare che siano visibili a tutti.
Perciò pensavo, una volta fatta la query sul database, di costruire la stringa da inviare come header, e mettere gli indirizzi email nel campo Bcc.
Ecco un breve estratto dello script
Codice PHP:
<?php
require('connessione.php');?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>
<body>
<?
//come prima cosa interroghiamo il database per reperire tutte le mail degli iscritti
$mail_degli_iscritti = "SELECT email FROM utenti";
$res_mail = mysql_query($mail_degli_iscritti);
while($riga_mail = mysql_fetch_array($res_mail)){
//usare i corrispettivi html di < e >...racchiudono gli indirizzi mail dei destinatari da inserire nell'header della mail
$stringa_destinatari=htmlspecialchars("<");
$stringa_destinatari.=$riga_mail["email"].htmlspecialchars(">");
echo $stringa_destinatari;
}
?>
</body>
</html>
il mio problema nasce dal fatto che se non uso la funzione
htmlspecialchars per convertire i caratteri < e > in < e > per qualche motivo mi si interropme il ciclo while sulla query che "pesca" tutti gli indirizzi dal db.
Se però trasformo < e > nei corrispettivi caratteri html,poi questi nell'header vengon inviati come &ly; e >...e quindi l'header non ha la giusta sintassi e le mail in "copia carbone nascosta" - Bcc non arrivano.
Ecco come sto costrueno la stringa dell'header
Codice PHP:
$header = "From: Inviante <inviante@dominio.org>\n";
//$header .= "CC: Altro Ricevente <ricevente@dominio.it>, \n";
//gli altri riceventi li metto nel Blind Carbon Copy, in modo che non si vedano nel client di chi riceve la mail
$header .= "Bcc: ".$stringa_destinatari."\n";
// generiamo la stringa che funge da separatore
$boundary = "==String_Boundary_x" .md5(time()). "x";
// costruiamo le intestazioni che specificano
// un messaggio costituito da più parti alternative
$header .= "MIME-Version: 1.0\n";
$header .= "Content-Type: multipart/alternative;\n";
$header .= " boundary=\"$boundary\";\n\n";
Tra l'altro non so se nell'header la sinstassi <destinatario1@kkk.it>,<destinatario2@kk.it> sia corretta e sia l'unica possibile
Come posso fare?
grazie