Étant (très largement) débutant en "webmastering", je me suis fait aider par quelqu'un qui m'a gentiment rédigé ce code, (que je comprends) qui fonctionne bien, sur les serveurs de Free, ou de 1&1.
Je l'ai utilisé pour la page contact(.php5) d'un site hébergé par OVH et là, mauvaise surprise : ça ne fonctionne pas...
Le message affiché m'indique bien que tout est ok ("votre message a bien été envoyé"), mais je ne reçois rien.
J'ai regardé sur plusieurs forum, dont un qui parlait du suivi des emails sur OVH, qu'il fallait activer, ce que j'ai fait -> pas de changement.
voici les codes :
-de la page contact.php5:
<?php
require_once 'envoi.php5';
if(isset($_POST['f-message']) and isset($_POST['f-nom']) and isset($_POST['f-email']) and isset($_POST['f-prenom'])){
if(!empty ($_POST['f-message']) and !empty ($_POST['f-nom']) and !empty($_POST['f-email']) and !empty($_POST['f-prenom'])){
$email=$_POST['f-email'];
$etat='';
$email=new Email($email);
$email->envoyer($_POST,&$etat);
}
else {
echo "<div class='warning'>merci de remplir tous les champs obligatoires</div>";
}
}
if(isset($etat) and $etat=="erreur" ){
echo "<div class='warning'>Veuillez saisir une adresse mail valide</div>";
}
if(isset($etat) and $etat=="envoyer" ){
echo "<div class='warning'>Votre message a bien été envoyé, merci.</div>";
}
?>
-celui de la page envoi.php5 :
<?php
class Email {
private $mail;
public function Email($mail){
if(preg_match("#^[a-zA-Z]([a-zA-Z0-9]*)(-|_|\.)?([a-zA-Z0-9]+@)([a-zA-Z]{3,})\.([a-zA-Z]{2,4})$#",$mail))
$this->mail=$mail;
}
public function envoyer($tabePost,$etat){
if(!empty ($this->mail)){
$to='mail1@monmail.com, mail2@monmail.com';
$m=$this->mail;
$message="";
foreach ($tabePost as $key => $value) {
if($key!="envoyer"){
$cle=substr($key,2);
if($key!='f-message'){
$message.=$cle." : ".$value."\n";
}
else { $message.="\n\n".$cle." : ".$value;}
}
}
mail($to,$sujet,$message,$this->mail);
$etat="envoyer";
}
else {
$etat="erreur";
}
}
}
?>
Merci d'avance à tous ceux qui pourront m'aider.
