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
<?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é 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édigé 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è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ç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éléphone : </strong> {$telephone} </p>
<p><strong>Sujet : </strong> {$sujet}</p>
<p><strong>Contenu du message :</strong></p>
<p>{$message} </p>
<p>Envoyé le : {$date} à {$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