Problème avec l'envoi de mails chez ovh

Résolu/Fermé
krissnice Messages postés 3 Date d'inscription vendredi 19 août 2011 Statut Membre Dernière intervention 19 août 2011 - 19 août 2011 à 14:59
krissnice Messages postés 3 Date d'inscription vendredi 19 août 2011 Statut Membre Dernière intervention 19 août 2011 - 19 août 2011 à 16:23
Bonjour,
É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.

2 réponses

graffx Messages postés 6506 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 24 mars 2019 1 973
19 août 2011 à 15:21
as tu regardé les mails indésirables?

si il est la, c'est que tu n' a pas bien redigé ton header dans le mail.
0
krissnice Messages postés 3 Date d'inscription vendredi 19 août 2011 Statut Membre Dernière intervention 19 août 2011
19 août 2011 à 15:40
Oui, oui bien sûr, c'est la première chose que j'ai faite.
ça n'est pas dans les spams.
...
:-/
0
krissnice Messages postés 3 Date d'inscription vendredi 19 août 2011 Statut Membre Dernière intervention 19 août 2011
19 août 2011 à 16:23
Bon, ben pas grand chose à rajouter en fait : les tests d'envois sont arrivés 2 heures après...
Puis une fois la machine lancée, les mails arrivent dans la minute.
Il semblerait que ce soit juste l'histoire des suivis d'emails qui ait résolu le soucis.
wàlàààà. résolu
0