Pages :
Bonjour!

Pour tester ma page formulaire de contact en local, je voudrais l'envoyer sur ma boite mail.
J'ai installé Wamp, ça fonctionne.
Mais ensuite je ne comprends pas trop ce qu'il faut faire.

Voici le code de ma page CONTACT, en Php.
<form method="post" action="http://localhost/tests/formulaire/cible.php"><div>
        <label for="nom">Nom :</label>
        <input type="text" name="nom" autofocus />
    </div>
...

Je récupère les données de 3 variables: nom, mail, message.
Mais comment maintenant les faire parvenir dans ma boite mail en local.
Et est ce possible au moins?

MErci pour vos explications.
Décidément, faut que tu lises et regardes les liens que l'on te passe en réponse...
Sauf erreur (auquel cas tu m'en excuses), je t'ai transmis précédemment un lien sur la vidéo de Graphikart détaillant la totalité du processus de mise en place d'un formulaire PHP et de l'envoi d'un mail contact :
Lien sur le tutoriel
La vidéo est relativement longue, mais aux alentours des 55 mn tu trouveras la partie qui concerne plus spécifiquement le mail, avec tous les points sur lesquels il faut apporter une attention particulière (récupération des variables, contrôles de cohérence des données, etc.).
Si avec ça tu ne parviens pas à tes fins, c'est à désespérer car, pour le coup, tu as absolument tous les codes tapés progressivement au clavier par l'auteur et expliqués de vive voix. Smiley langue
Il faut en effet que tu suives des tutos sur ce sujet, il y en a plein.
2 choses sont à prendre en compte : l'installation d'un sendmail en local sur Wamp et ensuite le traitement à proprement parler du formulaire et l'envoi du mail.

Pour le premier point, tu testeras si ça marche avec la fonction mail() de PHP seule dans une page de test. Je te laisse consulter la doc de PHP pour savoir comment utiliser cette fonction.
A chaque fois que tu rafraîchiras cette page de test contenant ta fonction mail() tu devrais recevoir dans les secondes/minutes suivantes ton mail. Tant que tu ne reçois pas ces mails, ça ne sert à rien d'aller plus loin !
sepecat a écrit :
Décidément, faut que tu lises et regardes les liens que l'on te passe en réponse...
Mais je les lis et je les suis.
CEpendant il y a de grosses différences entre chaque explications.
par exemple sur un site, ils indiquent que dans le Php ini, il mettre port =25, dans un autre, ils disent port=587.

Sur le site de fake Sendmail, ils disent qu'il faut mettre smtp= adresse du FAI, sur un autre ils disent qu'il faut mettre mon adresse mail!

Finalement, je ne sais plus quoi faire!
Mais je vais suivre vos nouveaux liens à toi et Mathieu.
MatthieuR a écrit :
As-tu installé sendmail suivant cette procédure ?
Oui, mais ça ne fonctionne pas du tout.

[sendmail] 
smtp_server=smtp.gmail.com 
smtp_port=587 
default_domain=gmail.com 
error_logfile=error.log 
auth_username=********@gmail.com 
auth_password=****** 
pop3_server= 
pop3_username= 
pop3_password= 
force_sender=****@gmail.com 
force_recipient= 
hostname=

auth_username=********@gmail.com : je mets mon adresse mail
force_sender=****@gmail.com , je mets aussi mon adresse mail?
auth_password=****** : je mets quoi comme password? Celui de mon adresse mail, ou ce que je veux?

Merci pour votre aide.
Modifié par abeille (31 Mar 2016 - 12:46)
Ca ne fonctionne pas, mais comment testes-tu ?
abeille a écrit :

auth_password=****** : je mets quoi comme password? Celui de mon adresse mail, ou ce que je veux?

Oui, tu mets ton mot de passe de connexion à ton adresse mail, ces paramètres sont les mêmes que lors d'une configuration d'un client mail (Outlook, Thunderbird, Mail...).
Pour le force_sender, oui tu mets aussi ton mail.

Sinon, tu as essayé avec le 465 ? smtp_ssl est bien sur la valeur auto ?

Tu as bien redirigé ton sendmail_path vers ton sendmail.exe dans ton php.ini ?
Exemple :
sendmail_path ="C:\wamp\sendmail\sendmail.exe"

As-tu des infos dans le error.log de sendmail ?

As-tu redémarré ton serveur ?
Salut Mattlieu, et aussi les autres ici.
Je galère depuis deux jours avec cette histoire de mail à envoyer!
MatthieuR a écrit :

Sinon, tu as essayé avec le 465 ?
DAns le sendmail.ini ou dans le php.ini?
MatthieuR a écrit :
smtp_ssl est bien sur la valeur auto ?
J'ai aucun smtp-ssl!
MatthieuR a écrit :
Tu as bien redirigé ton sendmail_path vers ton sendmail.exe dans ton php.ini ?
Oui, ça j'en suis sûr!
MatthieuR a écrit :
As-tu des infos dans le error.log de sendmail ?
Je n'ai pas de error.log dans sendmail.
MatthieuR a écrit :
As-tu redémarré ton serveur ?
oui, très bien.

Je remets mon code de Sendmail:
[sendmail]
smtp_server=smtp.sfr.fr
smtp_port=465
default_domain=hotmail.fr
error_logfile=error.log
auth_username=*****@hotmail.fr
auth_password=*******
pop3_server=
pop3_username=
pop3_password=
force_sender=lanorey@hotmail.fr
force_recipient=
hostname=


et le code du Php ini;
SMTP = sfr.fr
smtp_port = 25

; For Win32 only.
sendmail_from = lanorey@hotmail.fr

; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
;  http://php.net/sendmail-path
 
sendmail_path ="D:\Wamp\sendmail\sendmail.exe"


Voila où j'en suis et je ne sais plus quoi faire!
Merci pour ton aide.
Tu trouves pas qu'il y a un souci dans tes infos dans ton sendmail.ini ?
[sendmail]
smtp_server=smtp.sfr.fr <= SFR
smtp_port=465
default_domain=hotmail.fr <= HOTMAIL
error_logfile=error.log
auth_username=*****@hotmail.fr <= HOTMAIL
auth_password=*******
pop3_server=
pop3_username=
pop3_password=
force_sender=lanorey@hotmail.fr <= HOTMAIL
force_recipient=
hostname=

Est-ce que les infos que tu renseignes sont bien les mêmes que dans ton client mail ?
Si tu n'as pas de smtp_ssl=auto, et bien tu le rajoutes.

Le port 465 dans le sendmail.ini.

Il faut que tu commentes (;) les lignes de la section "For Win32 only." et également les lignes SMTP = sfr.fr et smtp_port = 25 de ton fichier php.ini.
; SMTP = sfr.fr
; smtp_port = 25

; For Win32 only.
; sendmail_from = lanorey@hotmail.fr

; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
;   http://php.net/sendmail-path
 
 
sendmail_path ="D:\Wamp\sendmail\sendmail.exe"
Non, désolé Matthieu, ça ne fonctionne pas.
Voici le code formulaire de contact en Php:
(j'ai pas mis le champ "message" pour ne pas alourdir la page ici.
<form method="post" action="http://localhost/tests/post_contact.php">
	<div>	
		<label for="nom">Votre nom:</label>
		<input type="text" name="nom" id="nom" autofocus /> 
	</div>

	<div>	
		<label for="mail">Votre mail:</label> 
		<input type="email" name="mail" id="mail"/>
	
	<div class="button">
        <button type="submit" class="boutonenvoyer">
		Envoyer votre message	</button>
    </div>
</form>


Puis la page Php qui traite ces données:
<?php  

$errors=[];
if(!array_key_exists('nom',$_POST)||$_POST['nom']==''){
		$errors['nom']='vous navez pas renseigné votre nom';
	}
if(!array_key_exists('mail',$_POST)||$_POST['mail']==''){
		$errors['mail']='vous navez pas renseigné votre mail';
	}
if(!array_key_exists('message',$_POST)||$_POST['message']==''){
		$errors['message']='vous devez entrer un message';
	}
if(!empty($errors)){
	header('Location: contact.php');
	}
else{
	}

?> 

Tout ça fonctionne très bien.

Voici le code de Sendmail.ini, je l'ai corrigé comme tu me l'as dit.
[sendmail]
[sendmail]
smtp_server=sfr
smtp_port=465
default_domain=hotmail
error_logfile=error.log
auth_username=hotmail
auth_password=*********
pop3_server=
pop3_username=
pop3_password=
force_sender=hotmail
force_recipient=
hostname=
smtp_ssl=auto


Et le Php ini:
[mail function]
; For Win32 only.
SMTP = sfr.fr
smtp_port = 25

; For Win32 only.
sendmail_from = lanorey@hotmail.fr

; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
;  http://php.net/sendmail-path
 
sendmail_path ="D:\Wamp\sendmail\sendmail.exe"

Et mon fichier sendmail.exe respecte bien ce chemin.

Voilà où j'en suis, je galère un peu beaucoup là avec ce problème!
Peut être qu'on va jamais trouver la solution!
Modifié par abeille (01 Apr 2016 - 21:52)
Mais non, tu n'as pas fait ce que je t'ai dit Smiley ohwell

Quand je te dis qu'il y a un problème entre SFR et HOTMAIL tu imagines bien que ce n'est pas de remplacer les valeurs par SFR et HOTMAIL, c'est que si tu as un smtp chez sfr tu ne pourras jamais envoyer de mail avec une adresse hotmail Smiley sweatdrop

Quelle adresse mail utilises-tu au quotidien ? Enfin juste le domaine : hotmail.com, sfr.fr ou gmail.com ?

Sinon, dans ton php.ini, tu n'as rien changé du tout, il faut que tu commentes en ajoutant des ";" devant les lignes qui ne te servent pas à ta configuration.

Pour finir, et là je comprends que ça ne fonctionne de toute façon pas, où est ta fonction mail() dans ton code PHP ?
Comment tu peux tester si ta configuration de sendmail est correcte ?
Modifié par MatthieuR (01 Apr 2016 - 22:13)
MatthieuR a écrit :
Quand je te dis qu'il y a un problème entre SFR et HOTMAIL tu imagines bien que ce n'est pas de remplacer les valeurs par SFR et HOTMAIL, c'est que si tu as un smtp chez sfr tu ne pourras jamais envoyer de mail avec une adresse hotmail Smiley sweatdrop
Smiley parking

MatthieuR a écrit :
Quelle adresse mail utilises-tu au quotidien ? Enfin juste le domaine : hotmail.com, sfr.fr ou gmail.com ?
J'utilise hotmail.FR et parfois gmail.com

MatthieuR a écrit :
Sinon, dans ton php.ini, tu n'as rien changé du tout, il faut que tu commentes en ajoutant des ";" deant les lignes qui ne te servent pas à ta configuration.
Ok, ça c'est fait.

MatthieuR a écrit :
[Pour finir, et là je comprends que ça ne fonctionne de toute façon pas, où est ta fonction mail() dans ton code PHP ?
Comment tu peux tester si ta configuration de sendmail est correcte ?
C'est dans la page contact.php non?
<label for="mail">Votre mail:</label> 
			<input type="email" name="mail" id="mail"/>
Ah oui, j'oubliais le error.log.
Si tu n'as pas de error.log dans ton dossier /sendmail, c'est qu'aucune erreur n'a été enregistrée et sans doute que aucun appel à sendmail n'a été effectué.

Pour la dernière fois : pour tester dans un premier temps ta configuration d'envoi de mail en local il faut que tu testes la fonction mail() dans un fichier de test.
Dans ton dossier "tests", tu créer un nouveau fichier appeler testmail.php qui contient exactement c'est 2 lignes là :
<?php
mail('test@test.com', 'Sujet du mail', 'Message test du mail'); //remplace "test@test.com" par ton vrai email à toi...

Ensuite tu te rends sur cette page (http://localhost/tests/testmail.php).
Si tu reçois en mail sur ton adresse, c'est que tu as bien configuré ton sendmail, sinon tu continues à chercher et suivre scrupuleusement les conseils qui te sont donnés.
Donc si tu es chez hotmail.fr, en faisant une rapide recherche voici les infos du SMTP /
Nom du serveur SMTP Hotmail: smtp.live.com
Nom d'utilisateur SMTP Hotmail: votre adresse Hotmail
Mot de passe SMTP Hotmail: votre mot de passe
Port SMTP Hotmail: 587
Tu renseignes ça dans ton sendmail, tu testes et tu reviens dire si ça fonctionne.
[ sendmail ]
smtp_server=smtp.live.com
smtp_port=587
default_domain=hotmail.fr
error_logfile=error.log
auth_username=tonmail@hotmail.fr
auth_password=ton mot de passe
pop3_server=
pop3_username=
pop3_password=
force_sender=tonmail@hotmail.fr
force_recipient=
hostname=
smtp_ssl=auto

Modifié par MatthieuR (01 Apr 2016 - 22:40)
Non, rien à faire Matthieu, ça ne fonctionne pas.
Et rien dans les spam de ma boite mail aussi.
Peux-tu coller le contenu des fichiers suivants ici ?
testmail.php (il est bien dans le dossier "tests"), et quand tu l'appelles il y a une page blanche ?
sendmail.php
MatthieuR a écrit :
Peux-tu coller le contenu des fichiers suivants ici ?
testmail.php (il est bien dans le dossier "tests"), et quand tu l'appelles il y a une page blanche ?
Oui, quand je l'apelle il y a une page blanche. Ou alors j'utilise un var_dump pour voir les données.
<?php  

$errors=[];
if(!array_key_exists('nom',$_POST)||$_POST['nom']==''){
		$errors['nom']='vous navez pas renseigné votre nom';
	}
if(!array_key_exists('mail',$_POST)||$_POST['mail']==''){
		$errors['mail']='vous navez pas renseigné votre mail';
	}
if(!array_key_exists('message',$_POST)||$_POST['message']==''){
		$errors['message']='vous devez entrer un message';
	}
if(!empty($errors)){
	header('Location: contact.php');
	}
else{
	}

?> 

MatthieuR a écrit :
sendmail.php
Je n'ai pas de sendmail.php.
J'ai un sendmail.ini:
[ sendmail ]
smtp_server=smtp.live.com
smtp_port=587
default_domain=hotmail.fr
error_logfile=error.log
auth_username=*********@hotmail.fr
auth_password=*******
pop3_server=
pop3_username=
pop3_password=
force_sender=lanorey@hotmail.fr
force_recipient=
hostname=
smtp_ssl=auto


Merci pour ton aide, à cette heure là!!!
Modifié par abeille (01 Apr 2016 - 23:18)
Sinon, pour debuguer il faudrait que tu ajoutes cette ligne à ton sendmail.ini :
debug_logfile=debug.log

Modifié par MatthieuR (01 Apr 2016 - 23:07)
MatthieuR a écrit :
Sinon, pour debuguer il faudrait que tu ajoutes cette ligne à ton sendmail.ini :
debug_logfile=debug.log
Ok, mais après je récupère où les données du debug?
Non mais sérieusement, tu lis ce que j'écris ou tu ne comprends vraiment pas.
As-tu créé un fichier testmail.php avec le contenu que je t'ai indiqué de mettre dedans ?
Pages :