// fonction perso : retourne true si l'adresse est du type xx@xx.xx , false autrement
function test_addresse($ad)
{
// echo "on teste l'adresse $ad";
return( ereg('^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+'.
'@'.
'[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.'.
'[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$',
$ad) );
}
$a="michel@cabare.net"; // fixé avec mon adresse mail pour le 1° param, a:)
// on récupère ici depuis le formulaire les champs suivant
$sujet=$_POST[sujet];
// $sujet : contient le sujet du mail pour le 2° param, sujet:)
$corps=$_POST[corps];
// $corps : contient le contenu du mail pour le 3° param, message:)
$cc=$_POST[cc];
// $cc : contient une adresse mail pour le 4° param entete, cc:)
// $erreur est un tableau qui contiendra tous les messages d'erreurs
unset ($erreurs); // raz de cette variable, au cas ou, pour etre sur
$erreurs = array();
// teste si le champ sujet: est rempli
if($sujet) {
// echo "cela roule";
}
else {
$sujet = "sans sujet"; // si le demandeur n'a rien prévu, on met ce sujet
}
// test validite adresse mail en cc // supression des espaces eventuels
$cc = str_replace(" ", "", $cc);
if (!$cc=="") {
if(!test_addresse($cc)) {
$erreurs[] = "l'adresse donnée en copie conforme -$cc- semble incorrecte";
}
}
// il n'y a pas d'erreur, on peut continuer
//******************************************
if(count($erreurs) == 0)
{
$hcc="Cc: $cc \n";
// mot clé Cc: permet de définir une adresse mail d'envois en copie
$entete=$hcc;
// creation du 4° paramètre
$entete .= "Content-Type:text/html; charset=\"iso-8859-1\"\r\n";
$entete .= "Content-Transfer-Encoding: 8bit\r\n";
$message = "SUPER
ce mail est en htmlbeau et en couleur ....
".$corps."";
}
// on verifie le tableau des erreurs, s'il n' est pas vide, on liste les erreurs
//******************************************************************************
if(count($erreurs) > 0)
{
echo "Votre message n'a pu être envoyé pour les raisons suivantes :
";
echo "";
while(list($k,$v) = each($erreurs)) {
echo "- ".$v."
";
}
echo "
";
}
else // s'il est vide, on peut lancer le(s) mail(s) avec ses 4 paramètres
{
// envois du email au destinataire principal
$rep="webmaster";
if(!email("webmaster",$a, $sujet, $message, $rep, $entete))
echo "Le message à $a n'a pu être envoyé.";
// L'envoi du email a l'adresse donnée en Cc
if($cc) {
if(!email("webmaster",$cc, $sujet, $message, $rep, $entete))
echo "Le message à $cc n'a pu être envoyé.";
}
}
?>