Retourner à l'accueil du site  
Design:
Accueil
Actu Freenews
FAQ
Forums
Glossaire
Etat du réseau
Dossiers
Dialogue en direct
Liens ADUF
Newsletter
Livre d'or
Statistiques
A propos de l'ADUF
[Résolu] Fonction mail() PHP non fiable sur Free, aléatoire.
Aller en bas de la page
ADUF Index du Forum » Pages perso & dl.free.fr Aller à la page 1, 2  Suivante
Répondre au sujet Voir le sujet précédent : Voir le sujet suivant 
MessagePosté le: Jeudi 22 Août 2013 15:56:01 Numéro présent dans le profil, mais problème de récupération des caractéristiques de la ligne Répondre en citantReporter le post à l'équipe de modération
geryko
(Auteur du topic)

Habitué
Habitué


Hors-ligne

Inscrit le : 06 Juil 2013
Messages : 287
Sexe :
Ville : PERSAN (95340)

Forfait : Freebox Dégroupage Total





Bonjour,
J'utilise un genre de livre d'or sur mon site en PHP 4. (geryko.Free.fr)
Les visiteurs peuvent me laisser un message succinct.
Dès qu'un message est déposé, un courriel doit être envoyé dans ma boîte à lettres (qui
n'est pas chez Free mais sur laposte.net). Je ne reçois qu'aléatoirement ce courriel, une fois sur 5 ou 10.
J'ai vu de nombreux forums sur le sujet sans trouver de réponse satisfaisante.
'
Si l'émetteur a laissé son adresse courriel, je lui envoie un accusé réception. Dans ce cas,
l'émission du mail est presque toujours correcte.
'
La fonction mail() de Free n'est pas conforme aux RFC, pour éviter l'émission de SPAM
semble t’il, ce qui est une bonne chose, mais dans ce cas, c'est Free qui devrait dire comment
utiliser la fonction mail() ?
'
La fonction renvoie True même si le message n’a pas été transmis ! (réponse immédiate)
J'ai vu sur certains sites :
- des recommandations, y compris sur Free,
- une manière de tester la réponse à la fonction, (que j'ai réussi à mettre en échec, il fallait
mesurer le temps de réponse = non fiable)
-
Bref, sauf erreur de ma part,
y a t'il un moyen pour envoyer un courriel de manière fiable sur Free ? Lequel ?

Merci d'avance.
_________________
Mini 4k fibre optique.
Lorsque votre problème est réglé, marquez-le [Résolu] svp. (tout en bas à droite ) Géryko


Dernière édition par geryko le Samedi 24 Août 2013 12:52:01; édité 2 fois
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
MessagePosté le: Samedi 24 Août 2013 12:54:14 Numéro présent dans le profil, mais problème de récupération des caractéristiques de la ligne Répondre en citantReporter le post à l'équipe de modération
geryko
(Auteur du topic)

Habitué
Habitué


Hors-ligne

Inscrit le : 06 Juil 2013
Messages : 287
Sexe :
Ville : PERSAN (95340)

Forfait : Freebox Dégroupage Total





Bonjour,
J'ai vu que beaucoup d'autres personnes avaient le même problème.
Certaines essaient de trouver des remèdes sans vraiment connaître la cause :
Quelquefois il n'y a pas de réponse.
Le sujet serait-il tabou ?
Y a t'il vraiment personne qui sait ce qui se passe ?
A ce stade, j'aimerais bien une petite réponse, même négative.
'
Depuis 2 semaines je tourne en rond sur cette affaire. J'ai fait tellement de tests
que je ne sais plus très bien où j'en suis.
Maintenant j'ai 100% de courriels non transmis, même avec ma version initiale (aléatoire)
J'ai reçu 4 mails sur ma boîte Free.fr mais c'est en anglais, je ne comprends pas très bien
ce qu'il faut faire, voir ci-dessous en 3 volets :
---------------------------------
1) This is the mail system at host perso1.Free.fr.
I'm sorry to have to inform you that your message could not
be delivered to one or more recipients. It's attached below.
For further assistance, please send mail to postmaster.
If you do so, please include this problem report. You can
delete your own text from the attached returned message.
The mail system
<xxxxxxx@laposte.net>: delivery temporarily suspended: host
smtp4.laposte.net[193.251.214.113] refused to talk to me: 550 mwinf8514 ME
Adresse IP source bloquee pour incident de spam. Client host blocked for
spamming issues. LPN003_102 Ref
http://csi.cloudmark.com/reset......27.63.203 [102]
----- et
2) Reporting-MTA: dns; perso1.Free.fr
X-Postfix-Queue-ID: 45A6113AE4E8
X-Postfix-Sender: rfc822; xxxxxxxx@Free.fr
Arrival-Date: Thu, 22 Aug 2013 23:17:21 +0200 (CEST)

Final-Recipient: rfc822; xxxxxxx@laposte.net
Original-Recipient: rfc822; xxxxxxx@laposte.net
Action: failed
Status: 4.0.0
Diagnostic-Code: X-Postfix; delivery temporarily suspended: host
smtp4.laposte.net[193.251.214.113] refused to talk to me: 550 mwinf8514 ME
Adresse IP source bloquee pour incident de spam. Client host blocked for
spamming issues. LPN003_102 Ref
http://csi.cloudmark.com/reset......27.63.203 [102]
----- et
3) xxxxxx@Free.fr
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Date: Thu, 22 Aug 2013 23:17:17
To: xxxxxxx@laposte.net
essai mail sur Free pour la xx fois.
geryko
--------------------------------------------
Apparemment, c'est maintenant "laposte.net" qui me refuse ?
Le lien me dit : "une fois par 24h seulement ? Fallait'il essayer de le remplir ?
Si quelqu'un pouvait me donner des précisions ...
'
Je ne sais plus que faire, je suis sur le point d'abandonner Free.
J'ai pourtant un autre site où la fonction mail() fonctionne correctement (sur ovh).
Merci à tous
_________________
Mini 4k fibre optique.
Lorsque votre problème est réglé, marquez-le [Résolu] svp. (tout en bas à droite ) Géryko


Dernière édition par geryko le Dimanche 25 Août 2013 12:51:55; édité 2 fois
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
MessagePosté le: Lundi 26 Août 2013 21:49:32 Numéro présent dans le profil, mais problème de récupération des caractéristiques de la ligne Répondre en citantReporter le post à l'équipe de modération
geryko
(Auteur du topic)

Habitué
Habitué


Hors-ligne

Inscrit le : 06 Juil 2013
Messages : 287
Sexe :
Ville : PERSAN (95340)

Forfait : Freebox Dégroupage Total





Bonsoir,
'
La transmission des messages fonctionne à nouveau depuis ce matin mais toujours aléatoirement
Je n'ai rien fait. Va comprendre !
'
Chut ! on entend les mouches voler.
Il n'y a pas foule sur ce sujet mais je vous tiens au courant.
_________________
Mini 4k fibre optique.
Lorsque votre problème est réglé, marquez-le [Résolu] svp. (tout en bas à droite ) Géryko
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
MessagePosté le: Samedi 31 Août 2013 15:08:48 Numéro présent dans le profil, mais problème de récupération des caractéristiques de la ligne Répondre en citantReporter le post à l'équipe de modération
geryko
(Auteur du topic)

Habitué
Habitué


Hors-ligne

Inscrit le : 06 Juil 2013
Messages : 287
Sexe :
Ville : PERSAN (95340)

Forfait : Freebox Dégroupage Total





bonjour,
Depuis hier soir, je pense avoir trouvé une configuration qui fonctionne.
Laissez-moi un peu de temps pour nettoyer mon code et faire des tests
supplémentaires.
Depuis hier, sur une vingtaine d'envois, 100% de réussite.
_________________
Mini 4k fibre optique.
Lorsque votre problème est réglé, marquez-le [Résolu] svp. (tout en bas à droite ) Géryko
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
MessagePosté le: Samedi 31 Août 2013 18:39:42 Numéro présent dans le profil, mais problème de récupération des caractéristiques de la ligne Répondre en citantReporter le post à l'équipe de modération
charly29210
Connaisseur
Connaisseur


Hors-ligne

Inscrit le : 21 Déc 2006
Messages : 6463
Sexe :
Ville : Pétaouchnok

Forfait : Freebox Dégroupage Total
Freebox : v5





Les support officiel des Pages perso se trouve sur les news-groupe
ICI

news:proxad.Free.services.pagesperso
Voir le profil de l'utilisateur Envoyer un message privé
MessagePosté le: Dimanche 1 Septembre 2013 00:24:43 Numéro présent dans le profil, mais problème de récupération des caractéristiques de la ligne Répondre en citantReporter le post à l'équipe de modération
geryko
(Auteur du topic)

Habitué
Habitué


Hors-ligne

Inscrit le : 06 Juil 2013
Messages : 287
Sexe :
Ville : PERSAN (95340)

Forfait : Freebox Dégroupage Total





Bonsoir,

Ma situation :
Je suis retraité, je n'ai rien à vendre, je ne fais que m'amuser.
J'ai un site sur ovh qui fonctionne très bien avec la fonction mail() php4.
A titre d'expérience, (pour voir) je l'ai installé sur Free (pages perso) et là, le fonctionnement de la fonction mail()
s'est révélé aléatoire, (bon 1 fois sur 5 environ.)
Mes nombreux essais m'ont conduit à tester une proposition vue sur un forum qui consistait à mesurer le temps
de réponse à la fonction mail(). (toujours True) et d'en déduire une émission réussie ou non.
Cette technique n'était pas fiable non plus. J'ai réussi à lui faire dire "message envoyé" alors qu'il n'en était rien.
Après des jours de recherche, j'ai finalement testé une fonction trouvée sur un forum qui semble fonctionner.
Je n'ai donc rien inventé. Mes excuses auprès de l'auteur, que je n'arrive plus à le retrouver.

ajout du 04/09/2013, j'ai retrouvé l'auteur :
http://www.commentcamarche.net.....nt-Free-fr
voir la réponse de Philout2 - 16 mai 2013 à 20:36


Cette fonction mesure également le temps de réponse de la fonction mail() mais en cas d'échec elle recommence
une nouvelle fois (5 fois maxi).
Etant basée sur le même principe que mon test précédent, je n'y croyais pas trop mais le résultat est là.
Nota :
1) sur 40 tests d'émission, 100% de réussite
2) j'ai même eu 2 fois une émission double. (sur la fonction, il faudrait peut-être réduire le temps "$duree > 1.50" ?
3) les émissions ont lieu au 1er coup ou au 2ème coup en général. J'ai vu un seul cas où 4 tentatives ont été nécessaires.
4) il faudrait encore augmenter le nombre d'essais pour obtenir une bonne statistique.
5) Malgré tout, je considère que cela est du bricolage.
'
cordialement
Géryko
'
Ci-dessous, un extrait de ma configuration qui fonctionne.

<?php // 3 cas d'envoi automatique. Ici cas 1
function envoyer_lettre($email,$from_email) { // au visiteur du site
$objet = "Votre visite du site geryko/Free";
$to = $email; // $email = adresse du visiteur vérifiée par ailleurs
$message=fread(fopen("./pages/lettre_de_confirmation.txt","r"),filesize("./pages/lettre_de_confirmation.txt"));

envoi_mail($to,$objet,$message,$from_email); // envoi du message via une autre fonction
}
?>

<?php // 3 cas d'envoi automatique. Ici cas 2
function envoyer_droits_dacces($email,$from_email,$mon_host) { // au visiteur du site
$objet = "Site geryko/Free Entree des artistes."; // accent à voir ??
$to = $email; // $email =

adresse du visiteur vérifiée par ailleurs
$message=fread(fopen("../pages/lettre_demande_dacces.txt","r"),filesize("../pages/lettre_demande_dacces.txt"));

envoi_mail($to,$objet,$message,$from_email); // envoi du message via une autre fonction
}
?>

<?php // 3 cas d'envoi automatique. Ici cas 3
function avis_de_message($message,$email,$mon_email,$from_email) { // dans ma propre B à L
$objet = 'Visite du site geryko/Free ' ;
$to = $mon_email; // $mon_email = mon adresse lue dans config.inc.php
if (!empty ($email)) { // Vérification si l'adresse email du visiteur est présente
$objet = $objet . ' par '. $email;
}
else {
$objet = $objet . ' par un anonyme.';
}
$message= stripslashes($message); // On enlève les antislashes (ex : j\'ai)
envoi_mail($to,$objet,$message,$from_email); // envoi du message via une autre fonction
}
?>

<?php
function envoi_mail($to,$objet,$message,$from_email) { // trouvée sur un forum mais je ne sais plus où. Mes excuses auprès de l'auteur.
// ces 3 lignes ci-dessous ont été ajoutées pour mon cas personnel.
$additional_headers = "$from_email\r\n"; // ( $from_email = From: envoi@automatique.fr Une adresse non valide volontairement, lue dans

config.inc.php)
$additional_headers .= "MIME-Version: 1.0\r\n";
$additional_headers .= 'Content-type: text/plain; charset=iso-8859-1' . "\r\n"; // ou charset=iso-8859-15 à voir ??

$tentative = 0;
$envoi = 0;
While ($tentative < 5 AND $envoi == 0){ // 5 tentatives autorisées
$tentative++ ;
$t0 = microtime_float();
$reponse = mail($to,$objet,$message,$additional_headers); // on envoie
$t1 = microtime_float();
$duree = $t1-$t0; // on calcule la durée
if($reponse == 1 AND $duree > 1.50){$envoi = 1;} // on considère que cest OK
else{$envoi = 0; // sinon ...
$pause = 0;
while ($pause < 2.00){ // Ne pas descendre plus bas que 2s : moins bons résultats
$t2 = microtime_float(); // On attend un petit moment avant de recommencer une autre tentative
$pause = $t2-$t1;
}
}
echo "tentative ".$tentative.", envoi = ".$envoi.", durée : ".round($duree,3) ." * "; //."<br />"; le tout sur une seule ligne
}
if($envoi==1){echo " mail envoyé <br />";}else{echo " le mail n'a pu être envoyé ! <br />";}
}
?>

<?php
function microtime_float(){list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);}
?>
_________________
Mini 4k fibre optique.
Lorsque votre problème est réglé, marquez-le [Résolu] svp. (tout en bas à droite ) Géryko


Dernière édition par geryko le Mercredi 4 Septembre 2013 17:32:17; édité 1 fois
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
MessagePosté le: Mercredi 15 Février 2017 13:09:07 NRA : BUR64 (Pau) V2 Tous les DSLAM de ce NRA sont joignablesMembres sur ce NRADétails sur ce NRA Ligne : 1575 m (23 dB) Répondre en citantReporter le post à l'équipe de modération
Le.Sage
Nouveau
Nouveau

Hors-ligne

Inscrit le : 04 Oct 2007
Messages : 2
Sexe :
Ville : Pau

Forfait : Freebox Dégroupage Total sur ligne inactive (NDI)
Freebox : v5





Bonjour,

Je tenais à vous remercier pour cette solution car en 2017, le même problème est toujours présent chez Free (fonction mail php aléatoire, en moyenne seulement 1/3 fonctionne).
Ce forum est en effet le premier résultat qui sort sur Google voilà donc pourquoi je vous remercie vous, même si vous n'avez fait que relayer l'auteur.

Cette solution fonctionne bien à 100%

Encore merci Wink
Voir le profil de l'utilisateur Envoyer un message privé
MessagePosté le: Mercredi 15 Février 2017 22:07:39 Numéro présent dans le profil, mais problème de récupération des caractéristiques de la ligne Répondre en citantReporter le post à l'équipe de modération
geryko
(Auteur du topic)

Habitué
Habitué


Hors-ligne

Inscrit le : 06 Juil 2013
Messages : 287
Sexe :
Ville : PERSAN (95340)

Forfait : Freebox Dégroupage Total





Bonsoir,

Heureux pour toi.

Fin 2016 j'ai eu des ratés mais maintenant tout est rentré dans l'ordre et je n'ai rien fait !
Bien à toi.
_________________
Mini 4k fibre optique.
Lorsque votre problème est réglé, marquez-le [Résolu] svp. (tout en bas à droite ) Géryko
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
MessagePosté le: Vendredi 17 Février 2017 14:23:26 Aucun numéro de ligne indiqué dans le profil Répondre en citantReporter le post à l'équipe de modération
lppcf
Intéressé
Intéressé

Hors-ligne

Inscrit le : 08 Oct 2016
Messages : 98
Sexe :

Forfait : Accès libre





Attention cependant, les boucles de rechargement sont assez mal vu sur les PP de Free, et peuvent conduire à la suspension du compte, en cas d'abus manifeste. Pour le moment, aucun compte n'a été suspendu pour cet usage si l'utilisation était "raisonnable".

Une autre méthode fiable consiste simplement à indiquer que le mail n'est pas parti, et inviter l'utilisateur à recommencer ultérieurement (utilisable sur les formulaires, mais moins pratique pour les envois d'emails automatisés, j'en conviens).

Une fonction mailFree() à été développée spécifiquement pour les PP de Free par un utilisateur du service :

Code:
/** Nouvelle fonction mail pour le FAI Free, conforme au standard
* De temps en temps les courriels ne sont pas envoyés, mais pourtant la fonction mail() renvoie True
* ce qui n'est pas conforme a la spécification PHP de cette fonction.
* De manière empirique, il a été déterminée qu'un temps d'envoi au moins égal à 2 secondes est une garantie que le courriel
* est vraiment envoyé.
* Si le mail est vraiment envoyé, une notification de rejet est bien envoyé par Free à l'adresse de l'expéditeur du message
* Copyright 2013 - a@a.a <tmp12311@Free.fr>
* Licence : CeCILL-B, http://www.cecill.info
* Merci à Gaming Zone <http://gaming.zone.online.fr> pour ses tests ayant permis de déterminer la durée
* */
function mailFree($to , $subject , $message , $additional_headers=null , $additional_parameters=null) {
$start_time = time();
$resultat=mail ( $to , $subject, $message, $additional_headers, $additional_parameters);
$time= time()-$start_time;
return $resultat &amp; ($time&gt;1);
}
/** Fin de la définition de la fonction*/

et pour la partie utilisateur (exemple de script pour tester la fonction) :
Code:
/* Mettre ici l'adresse mail de votre site Web : si votre site est http://monsite.Free.fr/ alors votre adresse email est monsite@Free.fr */
$admin = 'Moi <monsite@Free.fr>';

$outHead = '<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8" />
<title>Test de la fonction PHP mail() chez Free - Test d\'envoi</title>
<meta name="robots" content="noindex,nofollow,noarchive"/>
<!--[if lt IE 9]><script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7/html5shiv.min.js"></script><script src="//cdnjs.cloudflare.com/ajax/libs/respond.js/1.4.2/respond.min.js"><![endif]-->
</head><body>
<h1>Test de la fonction PHP mail() chez Free - Test d\'envoi</h1>
<h2>Appel à la fonction mail() réalisé</h2>
<hr/>
<h3>Erreur(s) détectée(s) :</h3>';
$out='';
$res=false;
if (empty($_POST)||isset($_POST['reset'])){
$dest='';
} else {
$dest=$_POST['dest'];
if (isset($_POST['send'])){
$sujet='Message envoyé le '.date("l j F Y").' à '.date("H:i:s").', Test numéro 1';
$message="Ma foi,\nTout semble fonctionner correctement.\n\nEnvoyé depuis l'IP={$_SERVER["REMOTE_ADDR"]}";
$additional_headers = "Cc: $admin\r\n";
$additional_headers .= "From: $admin\r\n";
$additional_headers .= "MIME-Version: 1.0\r\n";
$additional_headers .= "Content-Type: text/plain; charset=utf-8\r\n";
// $additional_headers .="Reply-To: $admin\r\n";
$additional_headers .="Return-Path: $admin\r\n";
if (mailFree( $dest, $sujet , $message, $additional_headers )==false) {
$out.="<pre style='border: 1px dotted #666666;padding:10px;'><code>L'envoi du message n'a pas été réalisé en raison des limitations des serveurs de Free, merci de réessayer un peu plus tard.</code></pre>";
} else {$res=true;}
}
}
if (!$res) {
$out.="<form id='contact' method='post'>
<p><strong>Tous les champs sont obligatoires.</strong></p>
<p><label for='dest'>Courriel pour la réponse :</label> <input type='text' name='dest' id='dest' value='$dest'/></p>
<p><input type='reset' name='reset' value='Effacer' /> <input type='submit' name='send' value='Envoyer'/></p>
</form>";
} else {
$out.="<pre style='border: 1px dotted #666666;padding:10px;'><code>Merci de votre visite, vous allez recevoir un message à l'adresse : $dest</code></pre>";
}
$outForm='<p>Si une erreur du serveur ou un warning du type <code><strong>Warning:</strong> mail() [function.mail]: Trop de spam. Fonction mail() bloquée. in <strong>/mnt/000/xxx/x/0/votrelogin/test-mail.php</strong> on line <strong>17</strong></code> apparaît dans la zone de notification, la fonction PHP <code>mail()</code> de votre compte est bloquée pour spam ou usage excessif. Selon les cas, la fonction PHP <code>mail()</code> sera débloquée automatiquement toutes les fins de semaines ou de temps en temps.</p>
<p>Si il n\'apparaît dans la zone de notification aucun warning ou message d\'erreur, la fonction PHP <code>mail()</code> de votre compte fonctionne correctement.</p></body></html>';
echo $outHead.$out.$outForm;

Toutes les infos utiles concernant les emails/spams sur les PP de Free sont contenue dans ces 4 billets :
http://lppcf.Free.fr/spam-form
http://lppcf.Free.fr/spam-protection
http://lppcf.Free.fr/spam-bot
http://lppcf.Free.fr/site-email


Dernière édition par lppcf le Vendredi 17 Février 2017 14:24:58; édité 1 fois
Voir le profil de l'utilisateur Envoyer un message privé
MessagePosté le: Vendredi 17 Février 2017 15:22:24 Numéro présent dans le profil, mais problème de récupération des caractéristiques de la ligne Répondre en citantReporter le post à l'équipe de modération
geryko
(Auteur du topic)

Habitué
Habitué


Hors-ligne

Inscrit le : 06 Juil 2013
Messages : 287
Sexe :
Ville : PERSAN (95340)

Forfait : Freebox Dégroupage Total





Bonjour,

Merci à lppcf pour les précisions qu'il apporte.( et qu''il rappelle)

Effectivement, je sais que la répétition d'envoi en cas d'échec est à proscrire mais, me concernant, je n'ai que 10 emails par an en moyenne. (le message le mon exemple de code remonte à 2013 !)
C'est pour cette raison que le laisse ainsi pour l'instant, mais je conserve code de lppcf.

Pour les autres, Attention à la recommandation de lppcf ! Respectez la svp.
_________________
Mini 4k fibre optique.
Lorsque votre problème est réglé, marquez-le [Résolu] svp. (tout en bas à droite ) Géryko
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
MessagePosté le: Jeudi 2 Mars 2017 14:29:18 Aucun numéro de ligne indiqué dans le profil Répondre en citantReporter le post à l'équipe de modération
lapincompris
Nouveau
Nouveau

Hors-ligne

Inscrit le : 02 Mar 2017
Messages : 3
Sexe :
Ville : paris

Forfait : Freebox Dégroupage Total





Bonjour à tous et pardon de relancer un post qui semble résolu... pourtant Sad
Je me suis mis au html, csss, jquery depuis deux mois pour faire ma page perso. Pardonnez donc par avance mon niveau Very Happy
Merci à geryko et Ippcf qui aborde un sujet qui semble un peu tabou chez Free.

Mon problème est donc le même. Je ne reçois pas systématiquement les envois de mon formulaire de contact simple.
Je l'ai créé à partir de template trouvé sur le net en javascript, ajax et php car je voulais afficher les erreurs ou le non remplissage d'un anti robot, ou encore que le message a été envoyé...
(cf :http://www.bitrepository.com/a-simple-ajax-contact-form-with-php-validation.html)

Fort de mes tests, je ne reçois mes messages qu'une fois sur 2 ou 3, car je suis dans le cas de "L'envoi du message n'a pas été réalisé en raison des limitations des serveurs de Free".
Après vérification, je n'ai pas de problème de spam et réponds à toutes les consignes "fonction mail()" de Free.
(cf: http://les.pages.perso.chez.fr.....de-Free.io)
Mon formulaire fonctionne aussi parfaitement en local.

Aujourd'hui je voudrais donc informer le visiteur que son message ne m'est pas parvenu ("à cause donc du serveur Free") .
J'essaye donc de suivre les conseils trouvés également sur : http://lppcf.Free.fr/site-email
Mais après plusieurs bidouilles pour insérer dans mon php "if (mailFree(....)==false) rien ne marche.

Je n'arrive pas non plus à insérer la "function microtime_float()" également trouvé sur ce forum pour forcer l'envoi. (peu de risque de spam j'ai moins de 10 visites par mois sur ma page)

Bref, Quelqu'un pourrait-il m'aider à trouver une solution, sur ce forum ou ailleurs ?
Puis-je partager mon code php ici ?

Merci par avance pour vos réponses. Depuis le temps que je cherche mes cheveux blanchissent. Very Happy
Voir le profil de l'utilisateur Envoyer un message privé
MessagePosté le: Jeudi 2 Mars 2017 14:48:06 Aucun numéro de ligne indiqué dans le profil Répondre en citantReporter le post à l'équipe de modération
lppcf
Intéressé
Intéressé

Hors-ligne

Inscrit le : 08 Oct 2016
Messages : 98
Sexe :

Forfait : Accès libre





lapincompris a écrit:
Bonjour à tous et pardon de relancer un post qui semble résolu... pourtant Sad
Je me suis mis au html, csss, jquery depuis deux mois pour faire ma page perso. Pardonnez donc par avance mon niveau Very Happy
Merci à geryko et Ippcf qui aborde un sujet qui semble un peu tabou chez Free.

Mon problème est donc le même. Je ne reçois pas systématiquement les envois de mon formulaire de contact simple.
Je l'ai créé à partir de template trouvé sur le net en javascript, ajax et php car je voulais afficher les erreurs ou le non remplissage d'un anti robot, ou encore que le message a été envoyé...
(cf :http://www.bitrepository.com/a-simple-ajax-contact-form-with-php-validation.html)

Fort de mes tests, je ne reçois mes messages qu'une fois sur 2 ou 3, car je suis dans le cas de "L'envoi du message n'a pas été réalisé en raison des limitations des serveurs de Free".
Après vérification, je n'ai pas de problème de spam et réponds à toutes les consignes "fonction mail()" de Free.
(cf: http://les.pages.perso.chez.Fr.....de-Free.io)
Mon formulaire fonctionne aussi parfaitement en local.

Aujourd'hui je voudrais donc informer le visiteur que son message ne m'est pas parvenu ("à cause donc du serveur Free") .
J'essaye donc de suivre les conseils trouvés également sur : http://lppcf.Free.fr/site-email
Mais après plusieurs bidouilles pour insérer dans mon php "if (mailFree(....)==false) rien ne marche.

il faut copier la fonction mailFree() au début de ton script de contact. C'est ce code :

Code:
/** Nouvelle fonction mail pour le FAI Free, conforme au standard
* De temps en temps les courriels ne sont pas envoyés, mais pourtant la fonction mail() renvoie True
* ce qui n'est pas conforme a la spécification PHP de cette fonction.
* De manière empirique, il a été déterminée qu'un temps d'envoi au moins égal à 2 secondes est une garantie que le courriel
* est vraiment envoyé.
* Si le mail est vraiment envoyé, une notification de rejet est bien envoyé par Free à l'adresse de l'expéditeur du message
* Copyright 2013 - a@a.a <tmp12311@Free.fr>
* Licence : CeCILL-B, http://www.cecill.info
* Merci à Gaming Zone <http://gaming.zone.online.fr> pour ses tests ayant permis de déterminer la durée
* */
function mailFree($to , $subject , $message , $additional_headers=null , $additional_parameters=null) {
$start_time = time();
$resultat=mail ( $to , $subject, $message, $additional_headers, $additional_parameters);
$time= time()-$start_time;
return $resultat &amp; ($time&gt;1);
}
/** Fin de la définition de la fonction*/


Ensuite, il faut remplacer chaque occurence de mail(...) par mailFree(...)
Enfin, il faut gérer le message d'erreur.
Citation:


Je n'arrive pas non plus à insérer la "function microtime_float()" également trouvé sur ce forum pour forcer l'envoi. (peu de risque de spam j'ai moins de 10 visites par mois sur ma page)
A éviter
Citation:

Bref, Quelqu'un pourrait-il m'aider à trouver une solution, sur ce forum ou ailleurs ?
Puis-je partager mon code php ici ?
Oui, mais remplace/supprime tout ce qui est personnel (dans les chemins, les emails, les textes, etc.)
Citation:

Merci par avance pour vos réponses. Depuis le temps que je cherche mes cheveux blanchissent. Very Happy
Voir le profil de l'utilisateur Envoyer un message privé
MessagePosté le: Jeudi 2 Mars 2017 17:01:59 Aucun numéro de ligne indiqué dans le profil Répondre en citantReporter le post à l'équipe de modération
lapincompris
Nouveau
Nouveau

Hors-ligne

Inscrit le : 02 Mar 2017
Messages : 3
Sexe :
Ville : paris

Forfait : Freebox Dégroupage Total





Merci beaucoup Ippcf pour ta réponse.

Du coup j'ai essayé avec ce que tu m'as dit. Mais je me perds (le copier coller c'est pas bon Very Happy )

Je sens que je suis pas loin de la vérité mais je n'y arrive pas vraiment.
Je ne peux plus tester mon code en local puisque la fonction mailFree forcément ne marche que sur serveur Free Very Happy
Du coup je suis obligé d'attendre pas mal de temps entre les tests pour que le serveur Free réagisse comme normal.

ci après mon php, trop sympa si tu as une idée des problèmes...
Code:

<?php
   
function mailFree($to , $subject , $message , $additional_headers=null , $additional_parameters=null) {
$start_time = time();
$resultat=mail ( $to , $subject, $message, $additional_headers, $additional_parameters);
$time= time()-$start_time;
return $resultat & ($time>1);
}
/////////////////

   define("WEBMASTER_EMAIL", 'monlogin@Free.fr');   
   error_reporting (E_ALL ^ E_NOTICE);

////////////////

   function ValidateEmail($email)
   {
      $regex = '/([a-z0-9_.-]+)'. # name
      '@'. # at
      '([a-z0-9.-]+){2,255}'. # domain & possibly subdomains
      '.'. # period
      '([a-z]+){2,10}/i'; # domain extension
      
      if($email == '')
         return false;
      else
         $eregi = preg_replace($regex, '', $email);
      return empty($eregi) ? true : false;
   }

/////////////////////////////

   $post = (!empty($_POST)) ? true : false;
   
   if($post)
   {
      $name     = stripslashes($_POST['name']);
      $email     = trim($_POST['email']);
      $subject     = stripslashes($_POST['subject']);
      $fonction    = stripslashes($_POST['fonction']);
      $message   = stripslashes($_POST['message']);
      $site           = ($_POST['site']);
      $human      = intval($_POST['human']);
      $contenu     = stripslashes($_POST['contenu']);

$error = '';
$subject = 'Message depuis mon formulaire';
$ip = $_SERVER['REMOTE_ADDR'];
$hostname = gethostbyaddr($_SERVER['REMOTE_ADDR']);

$admin ="monlogin@Free.fr";
$headers .="Content-Type: text/plain; charset=\"iso-8859-1\"\r\n";
$headers .="Content-Transfer-Encoding: 8bit";


$additional_headers .= "From: $admin\r\n";
$additional_headers .= "MIME-Version: 1.0\r\n";
$additional_headers .= "Content-Type: text/plain; charset=utf-8\r\n";
// $additional_headers .="Reply-To: $admin\r\n";
$additional_headers .="Return-Path: $admin\r\n";

      
$contenu     = "Envoyé le ".  date ("d/m/Y - H:i") . "\n\n";
$contenu     .= "Mail de l'expéditeur : \r\n" . $email . "\r\n";
$contenu     .= "Nom de l'expéditeur : \r\n" . $name . "\r\n";
$contenu     .= "Fonction de l'expéditeur : \n" . $fonction . "\r\n";
$contenu     .= "Message de l'expéditeur : \n" . $message . "\r\n\n";
$contenu     .= "Chiffre de sécurité : " . $human . "\r\n\n";
$contenu     .= "Adresse IP de l'expéditeur : \n" . $ip . "\r\n";
$contenu     .= "DLSAM de l'expéditeur : \n" . $hostname ."\r\n";
   
      // Check name
      if(!$name || $name == "Name*")
         $error .= 'N\'oubliez pas votre prénom et votre nom.<br />';
   
      // Check email
      if(!$email || $email == "Email*")
         $error .= 'Écrivez un e-mail.<br />';
   
      if($email && !ValidateEmail($email))
         $error .= 'Écrivez un e-mail valide.<br />';
   
      // Check nobot
      if($site !== '')
         $error .= 'Oups vous êtes un robot. <br />';
         
      // Check human
      if($human !== 6)
         $error .= 'Complétez le contrôle anti-robot. <br />';
         
      // Check message
      if(!$message)
         $error .= 'Précisez votre message. <br />';

      // Check envoi
      if (mailFree($to, $subject, $contenu, $additional_headers )==false)
         $error .= 'Problème serveur Free, merci de réessayer un peu plus tard. <br />';
   
      if(!$error)
      {
         $resultat = mailFree($to, $subject, $contenu,
             "From: ".$name." <".$email.">\r\n"
            ."Content-Type: text/plain; charset=\"utf-8\"\r\n"
            ."X-Mailer: PHP/" . phpversion());
         
         if($resultat)
            echo 'OK';
      }
      else
         echo '<div class="formstatuserror">'.$error.'</div>';
   }

?>


il apparait plusieurs problèmes avec quelques tests en ligne:

1- avec mailFree : "define("WEBMASTER_EMAIL", 'monlogin@Free.fr');"
ne semble plus pris en compte j'ai donc laissé $to sans comprendre à quelle balise il faisait référence. Avant ça marchait avec : $resultat = mail(WEBMASTER_EMAIL, $subject, $contenu...

2- j'ai ajouté "$admin ="monlogin@Free.fr";"
puisque appelé par les "$additional_headers " que j'ai aussi ajouté mais ça doit faire doublon avec mes "$headers " précédent ?

3-if (mailFree($to, ....)==false) $error .= 'Problème serveur Free, merci de réessayer un peu plus tard;"
s'affiche maintenant à la moindre erreur

4- if($resultat) echo 'OK';
(qui fait appel à un javascript ajax) n'apparait plus maintenant même si le mail est envoyé.

5- J'ai maintenant une alerte warning qui s'affiche de temps en temps pour
"$resultat=mail ( $to , $subject, $message, $additional_headers, $additional_parameters);"
et là encore lapin compris Very Happy


Merci pour l'aide et je m'excuse d'être nul, tout ça est quand même compliqué quand on débute.
Dommage qu'avec Free ça fonctionne pas comme tout le monde Cool
Voir le profil de l'utilisateur Envoyer un message privé
MessagePosté le: Jeudi 2 Mars 2017 22:31:11 Aucun numéro de ligne indiqué dans le profil Répondre en citantReporter le post à l'équipe de modération
lppcf
Intéressé
Intéressé

Hors-ligne

Inscrit le : 08 Oct 2016
Messages : 98
Sexe :

Forfait : Accès libre





lapincompris a écrit:

Du coup je suis obligé d'attendre pas mal de temps entre les tests pour que le serveur Free réagisse comme normal.

En fait, la fonction mailFree() fonctionne partout, c'est juste qu'elle indiquera une erreur d'envoi alors que le mail est bien parti sur tous les serveurs autres que ceux des PP de Free.
Citation:

ci après mon php, trop sympa si tu as une idée des problèmes...


On va réécrire :

Première chose, utiliser la dernière version de PHP (5.6.x) :

Donc dans un fichier .htaccess, à la racine, on place ceci
Code:

<IfDefine Free>
php56 1
</IfDefine>

(faudra vérifier que tous les autres scripts PHP fonctionnent toujours correctement)
Ensuite le script de contact (je ne vois pas très bien pourquoi tu veux récupérer tant d'informations personnelles sur les personnes qui te contactent, il faut un accord explicite de ceux-ci pour enregistrer tout cela, et une déclaration à cnil le cas échéant) :

Code:

<?php

/** Formulaire de contact PHP avec token, basé sur le tutoriel proposé par Frato <http://www.lecentre.net/fratoblog/2010/02/securiser-un-formulaire-sans-captcha/>
 * Licence : CeCILL-B, http://www.cecill.info ?
 * Version : 1
 * Formulaire basé sur tutoriel de Webmaster Hub <http://www.webmaster-hub.com/publication/Un-Mailer-pour-votre-site-web.html>, modifié par Kilasoft, puis modifié par Al <les.pages.perso.chez(chez)Free.fr>. Remerciements à a@a.a <tmp12311@Free.fr> pour la fonction mail "spéciale Free" et mithril94 <mithril[neufquatre]@Free[point]fr> pour le captcha. Remerciement à bmil et Denyspf pour les tests réalisés.
 * Styles CSS basés sur le projet Better Web Readability Project CSS Library <http://code.google.com/p/better-web-readability-project/>
 * */

// Vérification ou création de la session
if (session_id()=='') {
    session_start();
    // Passer $session_mustclose à false si vous ne souhaitez pas fermer la session une fois le mail envoyé.
    // Passez à true si la session doit être fermée.
    $session_mustclose = true;
    }

// On envoie les en-têtes
header('Cache-Control:private, no-store, must-revalidate');
header('Content-Language: fr');
// Content-Security-Policy doit être adapté aux besoins de la page en question
// La valeur du nonce doit être impérativement changer pour une valeur aléatoire connu uniquement du gestionnaire du site.
// Ne pas oublier de mettre à jour la valeur du nonce des 2 scripts javascripts dans le <head>, une fois la valeur modifié ici.
header('Content-Security-Policy: default-src \'none\'; style-src \'self\' \'unsafe-inline\'; script-src \'self\' \'nonce-gonikwerOkIdVotgujNojRuls\' ; img-src \'self\'; font-src \'self\'; frame-ancestor \'none\' ');
header('Vary: Accept-Encoding');
header('X-Frame-Options: DENY');
header('X-XSS-Protection: 1; mode=block');
header('X-UA-Compatible: IE=Edge');
header('Content-Type: text/html; charset=utf-8');
header_remove('X-Powered-By');

// On compresse la sortie avec Gzip
ob_start('ob_gzhandler');

// Génération d'un token de session   
 function generateFormToken($form)
    {
        $token = hash(sha256,uniqid(microtime(), true));
        $_SESSION[$form.'_token_form'] = $token;
        return $token;
    }

 function verifyFormToken($form)
    {
        if (!isset($_SESSION[$form.'_token_form']))
        {return false;}
        if (!isset($_POST['token_form']))
        {return false;}
        if ($_SESSION[$form.'_token_form'] !== $_POST['token_form'])
        {return false;}
        return true;
    }
   
 function checkWhitelist($list)
    {
        foreach ($_POST as $key => $item)
        {
            if (!in_array($key, $list))
            {return false;}
        }
        return true;
    }

/** Nouvelle fonction mail pour le FAI Free, conforme au standard
 * De temps en temps les courriels ne sont pas envoyés, mais pourtant la fonction mail() renvoie True
 * ce qui n'est pas conforme a la spécification PHP de cette fonction.
 * De manière empirique, il a été déterminée qu'un temps d'envoi au moins égal à 2 secondes est une garantie que le courriel
 * est vraiment envoyé.
 * Si le mail est vraiment envoyé, une notification de rejet est bien envoyé par Free à l'adresse de l'expéditeur du message
 * Copyright 2013 - a@a.a <tmp12311@Free.fr>
 * Licence : CeCILL-B, http://www.cecill.info
 * Merci à Gaming Zone <http://gaming.zone.online.fr> pour ses tests ayant permis de déterminer la durée
 * */
function mailFree( $email_webmaster, $titre, $message, $additional_headers=null , $additional_parameters=null) {
   $start_time = time();
   $resultat=mail ( $email_webmaster, $titre, $message, $additional_headers, $additional_parameters);
   $time= time()-$start_time;
   return $resultat & ($time>1);
}
/** Fin de la définition de la fonction */

// Dans la ligne qui suit, remplacer "monlogin@Free.invalid" par l'adresse email à laquelle les messages devront être envoyés et "Moi" par votre nom
$email_webmaster = 'Moi <monlogin@Free.invalid>';

if (isset($_POST['envoyer'])){
// le formulaire a été soumis
$etat = 'erreur';
// Valeur par défaut. Prendra la valeur "ok" s'il n'y a pas d'erreur
// mise en forme des champs saisis dans le formulaire lors de sa soumission
if (isset($_POST['email_expediteur'])) {
$_POST['email_expediteur']=trim(strip_tags(stripslashes($_POST['email_expediteur'])));
}
if (isset($_POST['titre'])) {
$_POST['titre']=trim(strip_tags(stripslashes($_POST['titre'])));
}
if (isset($_POST['message'])) {
$_POST['message']=trim(strip_tags(stripslashes($_POST['message'])));
}
// test de la validité des champs saisis
if (empty($_POST['email_expediteur'])) {
// il manque l'email de l'expéditeur
$erreur='Saisissez votre adresse email&hellip;';
}
elseif (!filter_var($_POST['email_expediteur'], FILTER_VALIDATE_EMAIL)){
// l'adresse e-mail n'est pas valide
$erreur='Votre adresse e-mail n\'est pas valide&hellip;';
}
elseif (empty($_POST['message'])) {
// le message est vide
$erreur='Saisissez un message&hellip;';
}
else {
// Vérification du token de session
// Vérification de la validité du formulaire
$whitelist = array('email_expediteur', 'message', 'titre', 'envoyer', 'token_form');
if(verifyFormToken('contact_form') && checkWhitelist($whitelist)){
// tous les champs sont correctement remplis: on pourra envoyer le mail ---
$etat='ok';}
// Le code captcha n'est pas valide
else {$erreur='Formulaire non valide, réessayez&hellip;';}
}
}

else {
// Le formulaire n'a pas été soumis
$etat='attente';
}

$token = generateFormToken('contact_form');
?>
<!DOCTYPE html>
<html xml:lang="fr" lang="fr" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>Formulaire de Contact</title>
<style media="all" type="text/css">
html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, code, del, dfn, em, img, q, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td { margin: 0; padding: 0; border: 0; font-weight: inherit; font-style: inherit; font-size: 100%; font-family: inherit; vertical-align: baseline; } table { border-collapse: separate; border-spacing: 0; } caption, th, td { text-align: left; font-weight: normal; } table, td, th { vertical-align: middle; } blockquote:before, blockquote:after, q:before, q:after { content: ""; } blockquote, q { quotes: '' ''; } a img { border: none; } body { margin: 10px; } body { font:1em/1.625em 'lucida grande','lucida sans unicode', sans-serif; background-color:#FFF; font-size-adjust:none; font-style:normal; font-variant:normal; font-weight:normal; } p { padding:0 0 0.8125em 0; color:#111; font-weight:300;} /* p + p { text-indent:1.625em;} */ p.first:first-letter{ float:left;font-family: baskerville,'palatino linotype',serif;font-size:3em;font-weight:700;line-height:1em;margin-bottom:-0.2em;padding:0.2em 0.1em 0 0; } p img { float: left; margin: 0.5em 0.8125em 0.8125em 0; padding: 0; } p img.right { float: right; margin: 0.5em 0 0.8125em 0.8125em } h1,h2{ font-weight:normal; color: #333; font-family:Georgia, serif; } h3,h4,h5,h6,legend { font-weight: normal; color: #333; font-family:Georgia, serif; } h1 { font-size: 2.125em; margin-bottom: 0.765em; margin-bottom: 0.765em; } h2 { font-size: 1.9em; margin-bottom: 0.855em; } h3 { font-size: 1.7em; margin-bottom: 0.956em; } h4,legend { font-size: 1.4em; margin-bottom: 1.161em; } h5,h6 { font-size: 1.313em; margin-bottom: 1.238em; } input,textarea { font:1em/1.625em 'lucida grande','lucida sans unicode', sans-serif; border:none; color: #EEE; margin-bottom: 0.765em; text-decoration: none; padding:0.8125em;background: #333;} ul{list-style-position:outside;} li ul, li ol { margin:0 1.625em; } ul, ol { margin: 0 0 1.625em 0; margin-left:1.625em;} dl { margin: 0 0 1.625em 0; } dl dt { font-weight: bold; } dl dd { margin-left: 1.625em; } a { color:#005AF2; text-decoration:none; } a:hover { text-decoration: underline; } table { margin-bottom:1.625em; border-collapse: collapse; } th { font-weight:bold; } tr,th,td { margin:0; padding:0 1.625em 0 1em; height:26px; } tfoot { font-style: italic; } caption { text-align:center; font-family:Georgia, serif; } abbr, acronym { border-bottom:1px dotted #000; } address { margin-top:1.625em; font-style: italic; } del {color:#000;} blockquote { padding:1em 1em 1.625em 1em; font-family:georgia,serif;font-style: italic; } blockquote:before { content:'\201C';font-size:3em;margin-left:-.625em; font-family:georgia,serif;color:#aaa;line-height:0;}/* From Tripoli */ blockquote > p {padding:0; margin:0; } strong { font-weight: bold; } em, dfn { font-style: italic; } dfn { font-weight: bold; } pre, code { margin: 1.625em 0; white-space: pre; } pre, code, tt { font: 1em monospace; line-height: 1.5; } tt,fieldset { display: block; margin: 1.625em 0; } hr { margin-bottom:1.625em; } .oldbook { font-family:'Warnock Pro','Goudy Old Style','Book Antiqua','Palatino',Georgia,serif; } .note { font-family:Georgia, 'Times New Roman', Times, serif; font-style:italic; font-size:0.9em; margin:0.1em; color:#333; } .mono { font-family:'Courier New', Courier, monospace; }
</style>
<!--[if lt IE 9]><script nonce="gonikwerOkIdVotgujNojRuls" src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7/html5shiv.min.js"></script><script nonce="gonikwerOkIdVotgujNojRuls" src="//cdnjs.cloudflare.com/ajax/libs/respond.js/1.4.2/respond.min.js"><![endif]-->
</head>
<body style="margin-left:auto;margin-right:auto;max-width:70%">
<h1>Contacter le webmaster</h1><hr/>
<?php
if ($etat!='ok'){// le formulaire n'a pas été soumis, ou soumis avec une erreur
if ($etat=='erreur'){
//le formulaire a été soumis avec une erreur
echo '<div class="formstatuserror"><p>'.$erreur.'</p></div>';
// afficher le message d'erreur
}
?>
<form method="post" name="contact_form" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<p><input type="hidden" name="token_form" value="<?php echo $token; ?>" /></p>
<p><label for="email_expediteur">Votre adresse e-mail (obligatoire)&nbsp;:</label><br />
<input type="text" size="40" maxlength="254" name="email_expediteur" id="email_expediteur" value="<?php
if (!empty($_POST['email_expediteur'])) {
// l'adresse email de l'expéditeur a été saisie: la réafficher
echo stripslashes(htmlspecialchars($_POST['email_expediteur'],ENT_QUOTES,'UTF-8'));
}
?>" />
</p>
<p><label for="titre">Titre de message (facultatif)&nbsp;:</label><br />
<input type="text" size="40" maxlength="254" name="titre" id="titre" value="<?php
if (!empty($_POST['titre'])) {
// le titre du message a été saisi: le réafficher
echo stripslashes(htmlspecialchars($_POST['titre'],ENT_QUOTES,'UTF-8'));
}
?>" />
</p>
<p><label for="message">Message (obligatoire)&nbsp;:</label><br />
<textarea name="message" id="message" cols="70" rows="5"><?php
if (isset($_POST['message'])) {
// le message a été saisi: le réafficher
echo stripslashes(htmlspecialchars($_POST['message'],ENT_QUOTES,'UTF-8'));
}
?></textarea>
</p>
<p><input type="submit" name="envoyer" value="Envoyer" /></p>
</form>
<?php
}
else {

$email_expediteur = $_POST['email_expediteur'];
$titre = stripslashes(htmlspecialchars($_POST['titre'],ENT_QUOTES,'UTF-8'));
$message = stripslashes(htmlspecialchars($_POST['message'],ENT_QUOTES,'UTF-8'));

// le formulaire a été soumis sans erreur, on tente d'envoyer le mail
$additional_headers = "Reply-To: $email_expediteur\r\n";
$additional_headers .= "Content-Type: text/plain; charset=utf-8\r\n";
$additional_headers .= "From: $email_webmaster\r\n";
$additional_headers .= "Return-Path: $email_webmaster\r\n";
$additional_headers .= "MIME-Version: 1.0\r\n";
if ( mailFree($email_webmaster, 'Message depuis le site : '.$titre, $message, $additional_headers)==false){
// erreur lors de l'envoi du mail
echo '<p>Un problème s\'est produit lors de l\'envoi du message et il n\'a pas pu être envoyé.<br/><a href="'.$_SERVER['PHP_SELF'].'">Réessayez&hellip;</a><p>';
}
else {
// mail envoyé
echo '<h3>Merci !</h3><p>Votre message a été envoyé. Nous vous répondrons rapidement.<br /><a href=".">Envoyer un autre message&hellip;</a></p>';
// On efface et détruit les varaibles de sessions
if (isset($session_mustclose)) {
        session_unset();
        session_destroy();
    }
}
}
?>
</body>
</html>
<?php
// On termine
ob_end_flush(); ?>



Dernière édition par lppcf le Jeudi 2 Mars 2017 23:54:47; édité 1 fois
Voir le profil de l'utilisateur Envoyer un message privé
MessagePosté le: Vendredi 3 Mars 2017 12:44:09 Aucun numéro de ligne indiqué dans le profil Répondre en citantReporter le post à l'équipe de modération
lapincompris
Nouveau
Nouveau

Hors-ligne

Inscrit le : 02 Mar 2017
Messages : 3
Sexe :
Ville : paris

Forfait : Freebox Dégroupage Total





merci Ippcf pour ta réponse.

Citation:
En fait, la fonction mailFree() fonctionne partout, c'est juste qu'elle indiquera une erreur d'envoi alors que le mail est bien parti sur tous les serveurs autres que ceux des PP de Free.

Vais encore chercher à comprendre. Chez moi, cette fonction ne fonctionne pas quand je teste mon php en localhost...

Citation:
Donc dans un fichier .htaccess, à la racine, on place ceci

Mon htaccess est correct, j'ai même ajouté 2 répertoires à la racine : sessions et tmp (info que j'ai trouvé je ne sais plus où)

Citation:
je ne vois pas très bien pourquoi tu veux récupérer tant d'informations personnelles

Je pense que tu n'as pas lu mon script Very Happy parce que demander simplement pour un contact: le nom, la fonction, le mail et un message... je vois pas en quoi la CNIL pourrait me condamner ???
Il me semble que l'inscription à ce forum était bien plus longue.

Sinon merci pour ton script "formulaire-php-captcha-cryptographp" que j'avais également trouvé sans trop de difficulté à télécharger sur http://les.pages.perso.chez.fr.....gements.io

Cette version captcha est hélas vraiment indigeste.

Merci encore d'avoir pris le temps de me répondre. Je vais continuer à chercher à résoudre mon problème et viendrai le partager si je trouve.
Voir le profil de l'utilisateur Envoyer un message privé
 ADUF Index du Forum »  Pages perso & dl.free.fr Aller en haut de la page
Toutes les heures sont à l'heure légale française  
Page 1 sur 2  
Aller à la page 1, 2  Suivante
  
Sauter vers:  
Répondre au sujet  


Déclaration CNIL n°1012304 Partiellement basé sur phpBB © 2001, 2006 phpBB Group Traduction par : phpBB-fr.com