Vérifier si la fonction Sendmail est activée sur le serveur.
<?php
phpinfo();
?>
a. Créer un répertoire FTP « _PHPmail »
b. Créer « index.php »
c. Afficher
d. Chercher la ligne contenant « sendmail »

Alternative
<?php
if ( function_exists( 'mail' ) )
{
echo 'mail() is available';
}
else
{
echo 'mail() has been disabled';
}
?>
Réponse:

Fonction de suivi d’email sur OVH:



Envoyer un email simple sans formulaire :
<?php
$email = "benjaminviguier.pro@gmail.com";
$subject = "Email Test";
$message = "this is a mail testing email function on server";
$sendMail = mail($email, $subject, $message);
if($sendMail)
{
echo "Email Sent Successfully";
}
else
{
echo "Mail Failed";
}
?>


(Attention : Le mail peut partir, mais être bloqué par le prestataire mail d’arrivée, gmail, outlook, free, orange, yahoo… D’où l’interêt de se créer des adresses ‘tests’ chez tous ces prestataires)
Envoi propre – ajout d’un header:
<?php
$emetteur = "benjaminviguier.bv@gmail.com";
$headers = 'From: ' . $emetteur;
$email = "benjaminviguier.pro@gmail.com";
$subject = "Email Test";
$message = "this is a mail testing email function on server";
$sendMail = mail($email, $subject, $message, $headers);
if($sendMail)
{
echo "Email Sent Successfully";
}
else
{
echo "Mail Failed";
}
?>
Envoyer un Email via formulaire :
- Créer le formulaire: (method post permet d’envoyer les infos dans la page sendmail.php – ici sendmail.php est dans le même dossier que le php de formulaire de contact… )
<html>
<head>
<title>Simple Feedback Form</title>
<style>label{display:block;}</style>
</head>
<body>
<form action="sendmail.php" method="post">
<label>Email Address</label>
<input type="text" name="email_address" size="40">
<label>Votre message</label>
<textarea name="message" cols="50" rows="10"></textarea>
<input type="submit" name="send" value="Submit">
</form>
</body>
</html>

- Créer le script qui reçoit les données
Ouvrir une page sendmail.php
<?php
$mymail = "benjaminviguier.pro@gmail.com";
$subject = 'Test formulaire';
//Récupération des variables envoyées depuis la methode POST
$email_address = $_POST['email_address'];
$message = $_POST['message'];
$headers = 'From: ' . $email_address;
$sendMail = mail($mymail, $subject, $message, $headers);
if($sendMail)
{
echo "Email Sent Successfully to ", $email_address;
echo "<br>";
echo "The message is : ",$message;
$headers = 'From: ' . $mymail;
// Message retour optionnel
$sendMail2 = mail($email_address, "Sujet : Merci", "Message : merci pour votre message", $headers);
}
else
{
echo "Mail Failed. We can't send mail to ", $email_adress;
}
?>
Filtres:
permet d’enlever des caractères qui permettraient d’instiller du code via le formulaire: par ex : < > & …
function filter_email_header($form_field) {
return preg_replace('/[nr|!/<>^$%*&]+/','',$form_field);
}