Comment configurer WampServer pour envoyer un mail depuis localhost en PHP
Lorsque vous créez une applications web professionnelles, il est important de tester la fonctionnalité du messagerie avant de déployer le site web. Il est donc nécessaire pour les développeurs web d’envoyer des emails depuis leur environnement de développement.
Nous pouvons envoyer des emails depuis notre hôte local en utilisant un serveur de messagerie. Le serveur SMTP permet d’envoyer des messages depuis localhost et sendmail, c’est un agent de transport de mail qui se trouve dans le fichier php.ini.
Suivez les étapes ci-dessous pour configurer sendmail :
Etape 1 : Télécharger sendmail
Téléchargez sendmail et extrayez tous les fichiers dans le dossier C:\wamp64\sendmail.
Etape 2 : Configurer sendmail
Ouvrez le fichier sendmail.ini situé dans « c:\wamp64\sendmail\sendmail.ini ».
Trouvez [sendmail] en appuyant sur les touches ctrl + f.
Recherchez et modifiez les paramètres de configuration SMTP suivants.
smtp_server=smtp.gmail.com smtp_port=587 error_logfile=error.log debug_logfile=debug.log [email protected] auth_password=Votre-MotDePasse-Gmail [email protected](optionnel)
Etape 3 : Configurer le fichier php.ini
Ouvrez le fichier php.ini.
Trouvez [mail function] en appuyant sur ctrl + f.
Remplacez les paramètres de configuration SMTP comme ci-dessous :
SMTP=smtp.gmail.com smtp_port=587 sendmail_from = [email protected] sendmail_path = "\"C:\wamp64\sendmail\sendmail.exe\" -t"
Script pour envoyer un mail:
Copier le script suivant dans un fichier PHP appelé par exemple sendmail.php et placez le dans le répertoire www.
<?php $dest = "[email protected]"; $sujet = "Email de test"; $corp = "Salut ceci est un email de test envoyer par un script PHP"; $headers = "From: [email protected]"; if (mail($dest, $sujet, $corp, $headers)) { echo "Email envoyé avec succès à $dest ..."; } else { echo "Échec de l'envoi de l'email..."; } ?>
Maintenant, accédez à l’URL http://localhost/sendmail.php pour exécuter le script et envoyer l’e-mail. Si tout se passe bien, vous devriez voir le message de réussite « Email envoyé avec succès à [email protected] » dans votre navigateur. Si vous avez utilisé votre propre adresse e-mail pour l’adresse du destinataire, vous devriez également recevoir l’e-mail.
Si le message d’erreur « Échec de l’envoi de l’email… » s’affiche, vous devez configurer les paramètres de sécurité de GMAIL, en visitant le lien suivant https://myaccount.google.com/security
Défiler la page vers le bas jusqu’à ce que vous trouver Accès moins sécurisé des applications, puis cliquez sur Activer l’accès comme montrer dans l’image ci-dessous:
Cliquez pour activer l’option.
Maintenant vérifier, si tout se passe bien, vous devriez voir le message de réussite « Email envoyé avec succès à [email protected] » dans votre navigateur.
Bonjour tous le monde,
J’ai essayé de configuré mon serveur wamp et mon php.ini pour tester mon formulaire d’envoie de mail mais ça ne marche pas, pourtant j’ai la même configuration que vous avez indiqué
j’ai déjà vérifié si mon script php mais il semble fonctionné sans bug
Si le message « Échec de l’envoi de l’email… » s’affiche. C’est sûr que vous avez un problème de configuration puisque la fonction mail() renvoie false.
Voila ce que j’ai mis dans mon fichier sendmail.ini
[sendmail]
smtp_server=smtp.gmail.com
smtp_port=587
smtp_ssl=ssl
default_domain=localhost
error_logfile=error.log
debug_logfile=debug.log
[email protected]
auth_password=Mon_Mo_de_passe
pop3_server=
pop3_username=
pop3_password=
[email protected]
force_recipient=
hostname=locahost
et dans php.ini j’ai fai quelque chose comme ça
[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = smtp.gmail.com
; http://php.net/smtp-port
smtp_port = 587
; For Win32 only.
http://php.net/sendmail-from
;sendmail_from [email protected]
; For Unix only. You may supply arguments as well (default: « sendmail -t -i »).
; http://php.net/sendmail-path
sendmail_path = »\C:\wamp64\sendmail\sendmail.exe\ -t »
– Modifier les valeurs suivants dans le fichier sendmail.ini
smtp_ssl=auto
;default_domain=localhost ; mettez en commentaire cette ligne, ajoutez le ; au début
hostname= ; laissez ce paramètre vide
**************************************************************
Veillez vérifier si le fichier « sendmail.exe » existe dans le chemin suivant C:\wamp64\sendmail\sendmail.exe
**************************************************************
N’oublier pas d’activez l’option de sécurité sur votre compte Gmail.
je vous remerci de votre interet mais il semble que l’email n’est pas toujours envoyer vers le destinataire
j’aimerais vous envoyé mon scripte php
$reponse = « »;
function verifieEmail($mail) {
if (preg_match(‘/^[a-zA-Z0-9_]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$]/i’, $mail)) {
return false;
}
list($nom, $domaine) = explode(‘@’, $mail);
if (getmxrr($domaine, $mxhosts)) {
return true;
} else {
return false;
}
}
if (!empty($_POST[‘nom’]) && !empty($_POST[‘expediteur’]) && !empty($_POST[‘message’])) {
$destinataire = « [email protected] »;
$sujet = « Recommandation pour Rezocall »;
$message = « Nom : » . $_POST[‘nom’] . « \r\n »;
$message .= « Adresse email : » . $_POST[‘expediteur’] . « \r\n »;
$message .= « Message : » . $_POST[‘message’] . « \r\n »;
$from = $_POST[‘expediteur’];
if (verifieEmail($from)) {
$entete = ‘De la part de : ‘ . $from;
//$entete .= « Content-Type: text/html; charset=\ »utf-8\ »\r\n »;
if (mail($destinataire, $sujet, $message, $entete)) {
var_dump($_POST);
header(‘Location: index.php’); // Redirection vers la page d’acceuil
} else {
$reponse = « Une erreur s’est produite. Votre demande n’a pas été envoyée. »;
}
} else {
$reponse = « Votre email est invalide. Votre demande n’a pas été envoyée. »;
}
} else {
$reponse = « Vous n’avez pas rempli tous les champs. Votre demande n’a pas été envoyée. »;
}
if ($reponse) {
echo $reponse;
}
losque j’envoy l’email, la reponse est égale a « Une erreur s’est produite. Votre demande n’a pas été envoyée. »
j’ai déjà ésseyé un try(){}catch(){} mais il n’y a pas d’erreur dans l’execution
merci c est genial ca marche
Bonjour, j’ai atterri sur votre site en cherchant les formulaires de contact qui m’a l’air pas mal et fourni. Je n’ai pas encore eu le temps de faire le tour. J’apprends actuellement le développement en autodidacte et suis sur tous les fronts en même temps (html, css, bootstrap, js, php, mysql, …) Je me perds un peu mais garde l’espoir 🙂 . Je rencontre le même problème de fonctionnalité avec ce code qui me confirme qu’il à bien été envoyé mais ma boite mail (sfr), me le refuse (daemon). Merci pour votre éclairage.
Bonjour,
Je rencontre le problème aussi. le fichier php me renvoie « Echec de l’envoi de l’email.. »
Mon fichier sendmail.ini est configuré comme ceci :
smtp_server=smtp.gmail.com
smtp_port=587
smtp_ssl=
; default_domain=smtp.gmail.com
error_logfile=error.log
debug_logfile=debug.log
[email protected]
auth_password=xxxxxxxx
pop3_server=
pop3_username=
pop3_password=
[email protected]
force_recipient=
hostname=
Mon fichier php.ini
SMTP = smtp.gmail.com
smtp_port = 587
sendmail_from = »[email protected] »
sendmail_path = « C:\wamp64\sendmail\sendmail.exe -t »
mail.add_x_header = Off
Ouvrez sendmail.ini et définissez la configuration comme suit:
Accédez à votre compte Gmail. Cliquez sur Paramètres > Transfert et POP / IMAP > Accès IMAP. Cliquez sur « Activer IMAP », puis enregistrez vos modifications.
Exécutez votre serveur WAMP. Activez ssl_module sous Apache Module.
Ensuite, activez php_openssl et php_sockets sous PHP.
Ouvrez php.ini et configurez-le comme les codes ci-dessous. En gros, il vous suffit de définir le sendmail_path.
Redémarrez le serveur Wamp
J’espère que cela fonctionnera pour vous.