aldeco

probleme d'envoi de mail - choix du smtp
« le: 07 May 2013 15:57:24 »
Bonjour

j'ai récemment créer ma page perso et je voulais donner la possibilité a ceux qui vienne visiter ma page (qui est en faite mon cv html) de me contacter par mail ! Donc pour cela j'ai un petit formulaire en html et un script php qui récupère les informations du formulaire et les envoi par mail. Or je n'ai jamais reussi a le faire marcher chez free...
Pour tout vous dire, le code ne m'appartient pas et il fonctionne deja ailleur.

Je vous mets le code

Citer
<?php
  if( isset($_POST) ){
   
    //Variable de validation
    $formok = true;
    $erreurs = array();
   
    //récupération données cachées
    $date = date('d/m/Y');
    $time = date('H:i:s');

    //Si besoin de l'adresse IP il suffit de décommenter la ligne suivante
    //$ipaddress = $_SERVER['REMOTE_ADDR'];
   
    //récupération des données du contact
   $nom = $_POST['nom'];   
   $email = $_POST['email'];
   $telephone = $_POST['telephone'];
   $sujet = $_POST['sujet'];
   $message = $_POST['message'];
   
    //récupération du message
    $message = $_POST['message'];
   
    //Validation des données
    //Validation des champs texte obligatoire (prenom, nom, etc...)   
    if(empty($nom)){
      $formok = false;
      $erreurs[] = "Votre nom n'est pas renseigné";
    }
   
    //Validation de l'adresse email
    //contrôle non vide
    if(empty($email)){
      $formok = false;
      $erreurs[] = "Vous n'avez pas renseign&eacute; d\'adresse email";
      //contrôle validité
    }elseif(!filter_var($email, FILTER_VALIDATE_EMAIL)){
      $formok = false;
      $erreurs[] = "Votre adresse email n'est pas valide";
    }
   
   //Vérification que le message n'est pas vide
   if(empty($message)){
      $formok = false;
      $erreurs[] = "Vous n'avez pas r&eacute;dig&eacute; votre message";
   }
   //Vérification que le message fait plus de 20 caractères
   elseif(strlen($message) < 20){
      $formok = false;
      $erreurs[] = "Votre message doit comporter plus de 20 caract&egrave;res";
   }

    //Envoi de l'email
    if($formok){
      $email_subject = $nom .' a vu votre CV et souhaite vous contacter';
      $headers = 'From: ' . $nom . ' <' . $email . '>' . "\n";
      $headers .= 'Reply-To: '. $nom . ' <' . $email . '>' . "\n";
      //$headers .= 'bcc:[email protected]' . "\n"; //Si vous souhaitez envoyer une copie cachée du message
      $headers .= 'MIME-Version: 1.0' . "\n";
      $headers .= 'Content-type: text/html; charset=UTF-8' . "\n";
      $headers .= 'x-priory: 3' . "\n";
      $headers .= 'Return-Path: <' . $email . '>' . "\n";
      $headers .= "\n";
     
      $emailbody = "
        <p>Vous avez re&ccedil;u un nouveau message depuis votre CV en ligne</p>
        <p><strong>De la part de : </strong> {$nom} </p>
        <p><strong>Son adresse email : </strong> {$email} </p>
        <p><strong>Son t&eacute;l&eacute;phone : </strong> {$telephone} </p>
        <p><strong>Sujet : </strong> {$sujet}</p>
        <p><strong>Contenu du message :</strong></p>
      <p>{$message} </p>
        <p>Envoy&eacute; le : {$date} &agrave; {$time} depuis l'adress IP : {$ipaddress}</p>
        ";
     
     //Indiquer dans la première occurence votre adresse email entre guillements
      mail("[email protected]",$email_subject,$emailbody,$headers);
     
    }
   
    //renvoi de certaines données au formulaire
    $retourdata = array(
      'posted_form_data' => array(
        'nom' => $nom,
        'email' => $email,
        'telephone' => $telephone,
        'sujet' => $sujet
      ),
      'form_ok' => $formok,
      'erreurs' => $erreurs
    );
   
   
    if(empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) !== 'xmlhttprequest'){
      session_start();
      $_SESSION['wa_retour'] = $retourdata;
      header('location: ' . $_SERVER['HTTP_REFERER']);
    }
  }
 

J'ai donc deux questions : qu'est ce que j'ai loupé ? ca fait deux jours que je fouine partout pour trouver ma solution mais jai bien l'impression que même free ne fournit pas d'information sur l'utilisation de la fonction mail()

deuxieme question : puis-je utiliser le smtp d'un serveur totalement externe (qui lui fonctionne sans broncher)? en y mettant simplement mon script php dessus et en changeant le chemin d’accès sur mon formulaire ?

Je remercie d'avance tout ceux qui prêteront attention a mon problème