J'aimerais pouvoir envoyer un mail (de mon adresse gmail, je n'ai pas de serveur mail) depuis un formulaire de test que j'ai créé. Ce dernier demande simplement un pseudonyme et un mot de passe (pour la forme), puis vérifie le tout et envoie un mail pour tester tout ça.
J'ai installé et configuré XAMPP. J'ai installé sendmail et j'ai renseigné dans mon fichier php.ini le chemin vers sendmail.
Est-ce qu'il y a une configuration supplémentaire à effectuer pour que tout marche ?
test.php :
Code : Tout sélectionner
<?php
$pseudonymeErreur = $passeErreur = $confirmationErreur = $pseudonyme = $passe = $confirmation = "";
$pass = false;
function verifier_entree ( $entree )
{
$entree = filter_var( $entree, FILTER_SANITIZE_STRING );
return $entree;
}
if ( $_SERVER["REQUEST_METHOD"] == "POST" )
{
$pass = true;
$pseudonyme = verifier_entree ( $_POST["pseudonyme"] );
$passe = verifier_entree ( $_POST["passe"] );
$confirmation = verifier_entree ( $_POST["confirmation"] );
if ( empty ( $pseudonyme ) )
{
$pass = false;
$pseudonymeErreur = "Le pseudonyme est obligatoire !";
}
else if ( ! preg_match ( "/^[a-zA-Z0-9\-]*$/", $pseudonyme ) )
{
$pass = false;
$pseudonymeErreur = "Le pseudonyme ne doit contenir que des lettres, chiffres et tirets !";
}
if ( empty ( $passe ) )
{
$pass = false;
$passeErreur = "Le mot de passe est obligatoire !";
}
if ( $passe != $confirmation )
{
$pass = false;
$confirmationErreur = "Les mots de passe ne correspondent pas !";
$passe = $confirmation = "";
}
}
?>
<!DOCTYPE HTML>
<html lang="fr-FR">
<head>
<title>Formulaire d'enregistrement</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="style.css" />
</head>
<body>
<h1>Rejoindre la communauté</h1>
<?php
if ( $pass == false )
{
?>
<form action="<?php htmlspecialchars ( $_SERVER["PHP_SELF"] ) ?>" method="post" accept-charset="utf-8">
<fieldset>
<legend>Formulaire d'inscription</legend>
<span class="warning">Les champs marqués d'un astérisque sont obligatoires</span>
<br />
Pseudonyme :
<br />
<input type="text" name="pseudonyme" placeholder="Pseudonyme" value="<?php echo $pseudonyme; ?>" /> <span class="warning"> * <?php echo $pseudonymeErreur; ?></span>
<br />
Mot de passe :
<br />
<input type="password" name="passe" placeholder="Mot de passe" value="<?php echo $passe; ?>" /> <span class="warning"> * <?php echo $passeErreur; ?></span>
<br />
Confirmation du mot de passe :
<br />
<input type="password" name="confirmation" placeholder="Confirmation" value="<?php echo $confirmation; ?>" /> <span class="warning"> * <?php echo $confirmationErreur; ?></span>
<br />
<input type="submit" value="S'incrire" />
</fieldset>
</form>
<?php
}
else
{
?>
<h3>Formulaire validé</h3>
<p>
Félicitations, <span class="gras"><?php echo $pseudonyme; ?></span>, votre compte est bien enregistré. Bonne visite sur nos forums !
</p>
<br />
<?php
if ( mail("xxxx@gmail.com", "PHP Nouvelle inscription", "Un nouvel utilisateur à été enregistré !") != NULL )
{
echo "Email envoyé avec succès !";
}
}
?>
</body>
</html>
Code : Tout sélectionner
@import 'https://fonts.googleapis.com/css?family=Raleway';
body
{
font-family: 'Raleway', sans-serif;
}
.warning
{
font-weight: bolder;
color: red;
}
.gras
{
font-weight: bold;
font-style: italic;
}
Code : Tout sélectionner
[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP=smtp.gmail.com
; http://php.net/smtp-port
smtp_port=25
; For Win32 only.
; http://php.net/sendmail-from
sendmail_from = xxx@gmail.com
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
sendmail_path = "/usr/bin/sendmail -t -i"
; Force the addition of the specified parameters to be passed as extra parameters
; to the sendmail binary. These parameters will always replace the value of
; the 5th parameter to mail(), even in safe mode.
;mail.force_extra_parameters =
; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename
mail.add_x_header=On
; Log all mail() calls including the full path of the script, line #, to address and headers
;mail.log =