PHP: envoyer mail d'un site free
filoulebauju
Messages postés
170
Date d'inscription
Statut
Membre
Dernière intervention
-
le père -
le père -
Bonjour,
Cela fait un moment que j'ai ce problème, et je ne trouve pas la solution.
J'ai un script PHP, qui est censé envoyer un mail, mais malheureusement, il ne part jamais.
Mes variables sont bonnes, elles contiennent les éléments que je veux, il n'y a pas d'erreur à l'éxécution du code.
J'ai déja essayé avec des librairies et rien n'y change.
Serait-ce un problème venant de mon ftp?
Merci
Cela fait un moment que j'ai ce problème, et je ne trouve pas la solution.
J'ai un script PHP, qui est censé envoyer un mail, mais malheureusement, il ne part jamais.
Mes variables sont bonnes, elles contiennent les éléments que je veux, il n'y a pas d'erreur à l'éxécution du code.
J'ai déja essayé avec des librairies et rien n'y change.
Serait-ce un problème venant de mon ftp?
Merci
A voir également:
- PHP: envoyer mail d'un site free
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour a la ligne php - Forum Webmastering
- Alert php - Forum PHP
- Retour a la ligne php ✓ - Forum PHP
22 réponses
voici le script
les variables sont correctement remplies et je n'ai aucune erreur.
Merci de me filer un coup de main en tout cas, je tourne en rond là
for ($i=1;$i<=$data_count['count(personne_nom)'];$i++) { $data_mail = mysql_fetch_array($req_mail); ini_set ("SMTP", "smtp.free.fr"); ini_set ("sendmail_from", "mon_mail@free.fr"); $objet=("Amélioration de score"); $message="Bonjour ".$data_mail['personne_prenom'].", \n".$data_utilisateur['personne_prenom']." a amélioré son score sur l'épreuve ".$data_utilisateur['course_libelle']." avec la ".$data_utilisateur['voiture_libelle']." avec un temps de ".$temps." \nCordialement."; mail($data_mail['personne_mail'], $objet, $message); }
les variables sont correctement remplies et je n'ai aucune erreur.
Merci de me filer un coup de main en tout cas, je tourne en rond là
Si tu supprimes les ini_set() ça marche ? Parceque je pense que tu n'as pas besoin des init_set moi je ne m'en servais pas quand j'étais chez free est sa marchait très bien.
Sinon, tu as fait des tests avec la fonction mail() sans la boucle ?
Sinon, tu as fait des tests avec la fonction mail() sans la boucle ?
Oui j'ai essayé pour les ini_set et pour la boucle.
Si jamais quelqu'un a un script qui marche actuellement sur free, je suis preneur.
Si jamais quelqu'un a un script qui marche actuellement sur free, je suis preneur.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour
Ce code marche chez free.
Pas de ini_set, mais un header From obligatoire
Ce code marche chez free.
Pas de ini_set, mais un header From obligatoire
$to="destinataire@truc.fr"; $subject="sujet"; $headers = "From: moi@free.fr"; $texte="blabla"; $msgok=mail ( $to ,$subject , $texte , $headers ) ;
Ça m'étonnerait beaucoup que ça vienne du serveur...
Peux-tu montrer le code exact (sauf les vrais adresses bien sûr) que tu essayes ?
Peux-tu montrer le code exact (sauf les vrais adresses bien sûr) que tu essayes ?
voila
C'est un peu crade comme code (bien qu'il marche) mais j'ai tellement trifouillé pour le mail que j'ai pas eu le temps de ranger ^^
<?php session_start();?> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> <title>rFactor</title> <link href="style/style.css" rel="stylesheet" type="text/css" media="screen" /> <?php $connection = mysql_connect('db', 'user', 'mdp'); $db="dodet_philippe"; mysql_select_db($db) or die ("pas de connection"); if( ($_POST['num']=="") ) echo "error"; else{ $num=$_POST['num']; $compet=$_POST['epreuve']; $score=$_POST['score']; $voiture=$_POST['voiture']; function minutes_vers_milliemes($temps){ $minutes=substr($temps,0,strpos($temps,"\'")); $secondes=substr($temps,strpos($temps,"\'")+2,strpos($temps,"\'\'")-3); $milliemes=substr($temps,strpos($temps,"\'\'")+4); return ($minutes*60000)+($secondes*1000)+$milliemes; } $score = minutes_vers_milliemes($score); $sql_meilleur = "Select resultat_id, resultat_voiture_id, resultat_personne_id from rfactor_course inner join rfactor_resultat on rfactor_course.course_id = rfactor_resultat.resultat_course_id join rfactor_personne on rfactor_personne.personne_id = rfactor_resultat.resultat_personne_id where resultat_score = (select min(resultat_score) from rfactor_resultat where rfactor_resultat.resultat_course_id = '$course_id' and resultat_voiture_id = '$voiture_id')"; $req_meilleur = mysql_query($sql_meilleur) or die('Erreur SQL !<br>'.$sql_meilleur.'<br>'.mysql_error()); $data_meilleur = mysql_fetch_array($req_meilleur); if ($data_meilleur['resultat_id'] = $num and $data_meilleur['resultat_voiture_id'] = $voiture and $data_meilleur['resultat_personne_id'] = $_SESSION['id']) { $sql= "UPDATE rfactor_resultat set resultat_score = $score, resultat_voiture_id = $voiture, resultat_course_id = $compet where resultat_id = $num"; $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); $sql_utilisateur = "SELECT personne_prenom, voiture_libelle, course_libelle from rfactor_personne join rfactor_resultat on rfactor_personne.personne_id = rfactor_resultat.resultat_personne_id join rfactor_course on rfactor_course.course_id = rfactor_resultat.resultat_course_id join rfactor_voiture on rfactor_voiture.voiture_id = rfactor_resultat.resultat_voiture_id where personne_id = '".$_SESSION['id']."' and voiture_id = $voiture"; $req_utilisateur = mysql_query($sql_utilisateur) or die('Erreur SQL !<br>'.$sql_utilisateur.'<br>'.mysql_error()); $data_utilisateur = mysql_fetch_array($req_utilisateur); $sql_mail = "SELECT personne_nom, personne_prenom, personne_mail from rfactor_personne where personne_id != '".$_SESSION['id']."'"; $req_mail = mysql_query($sql_mail) or die('Erreur SQL !<br>'.$sql_mail.'<br>'.mysql_error()); $sql_count = "SELECT count(personne_nom) from rfactor_personne where personne_id != '".$_SESSION['id']."'"; $req_count = mysql_query($sql_count) or die('Erreur SQL !<br>'.$sql_count.'<br>'.mysql_error()); $data_count = mysql_fetch_array($req_count); for ($i=1;$i<=$data_count['count(personne_nom)'];$i++) { $data_mail = mysql_fetch_array($req_mail); $to=$data_mail['personne_mail']; echo $to; $subject=("Amélioration de score"); $texte = "Bonjour ".$data_mail['personne_prenom'].", \n".$data_utilisateur['personne_prenom']." a amélioré son score sur l'épreuve ".$data_utilisateur['course_libelle']." avec la ".$data_utilisateur['voiture_libelle']." avec un temps de ".$temps." \nCordialement."; $headers = "From: blabla@free.fr"; $msgok=mail ( $to ,$subject , $texte , $headers ) ; } } else { $date = getDate(); $sql= "UPDATE rfactor_resultat set resultat_score = $score, resultat_voiture_id = $voiture, resultat_course_id = $compet, resultat_date = now() where resultat_id = $num"; $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); $sql_utilisateur = "SELECT personne_prenom, voiture_libelle, course_libelle from rfactor_personne join rfactor_resultat on rfactor_personne.personne_id = rfactor_resultat.resultat_personne_id join rfactor_course on rfactor_course.course_id = rfactor_resultat.resultat_course_id join rfactor_voiture on rfactor_voiture.voiture_id = rfactor_resultat.resultat_voiture_id where personne_id = '".$_SESSION['id']."' and voiture_id = $voiture"; $req_utilisateur = mysql_query($sql_utilisateur) or die('Erreur SQL !<br>'.$sql_utilisateur.'<br>'.mysql_error()); $data_utilisateur = mysql_fetch_array($req_utilisateur); $sql_mail = "SELECT personne_nom, personne_prenom, personne_mail from rfactor_personne where personne_id != '".$_SESSION['id']."'"; $req_mail = mysql_query($sql_mail) or die('Erreur SQL !<br>'.$sql_mail.'<br>'.mysql_error()); $sql_count = "SELECT count(personne_nom) from rfactor_personne where personne_id != '".$_SESSION['id']."'"; $req_count = mysql_query($sql_count) or die('Erreur SQL !<br>'.$sql_count.'<br>'.mysql_error()); $data_count = mysql_fetch_array($req_count); for ($i=1;$i<=$data_count['count(personne_nom)'];$i++) { $data_mail = mysql_fetch_array($req_mail); $to=$data_mail['personne_mail']; $subject=("Amélioration de score"); $texte="Bonjour ".$data_mail['personne_prenom'].", \n".$data_utilisateur['personne_prenom']." a amélioré son score sur l'épreuve ". $data_utilisateur['course_libelle']." avec la ".$data_utilisateur['voiture_libelle']." avec un temps de ".$temps." \nCordialement."; $headers = "From: blabla@free.fr"; $msgok=mail ( $to ,$subject , $texte , $headers ) ; } } } ?>
C'est un peu crade comme code (bien qu'il marche) mais j'ai tellement trifouillé pour le mail que j'ai pas eu le temps de ranger ^^
Je ne vois pas d'erreur au niveau des "mail". Je n'ai pas trop regardé le reste.
Peux-tu ajouter un echo "coucou1 ",$msgok; après le premier "mail" et un echo "coucou2 ",$msgok; pour être sûr de quel mail est exécuté et de son résultat.
Peux-tu ajouter un echo "coucou1 ",$msgok; après le premier "mail" et un echo "coucou2 ",$msgok; pour être sûr de quel mail est exécuté et de son résultat.
ajouté
if(mail ( $to ,$subject , $texte , $headers ))
echo "message envoyé";
else
echo "erreur";
pour vérifie l'envoi du message
if(mail ( $to ,$subject , $texte , $headers ))
echo "message envoyé";
else
echo "erreur";
pour vérifie l'envoi du message
C'est que $msgok vaut false, ce qui confirme que l'envoi s'est mal passé.
Fais un echo de chaque paramètre de la fonction ( $to ,$subject , $texte , $headers ) dans chacun des appels pour être sûr que les valeurs sont correctes.
Si tout te semble normal, je te conseille d'essayer un script minimaliste qui ne fait qu'envoyer un message très simple à une adresse fixe.
Fais un echo de chaque paramètre de la fonction ( $to ,$subject , $texte , $headers ) dans chacun des appels pour être sûr que les valeurs sont correctes.
Si tout te semble normal, je te conseille d'essayer un script minimaliste qui ne fait qu'envoyer un message très simple à une adresse fixe.
J'ai déja essayé d'envoyé un mail en mettant une adresse "en dur", dans un script tout bete, aucun mail
Ce script avait-il le header "From " ?
As-tu essayé sans utiliser de caractères accentué (dans le sujet en particulier) ?
Je commence à sécher sérieusement, mais j'ai beaucoup de mal à croire que free n'envoie pas les mails. À moins que tu n'en aies déjà envoyé plus que le quota autorisé par free, ce qui est possible si ton site est squatté par un site de spam à ton insu
As-tu essayé sans utiliser de caractères accentué (dans le sujet en particulier) ?
Je commence à sécher sérieusement, mais j'ai beaucoup de mal à croire que free n'envoie pas les mails. À moins que tu n'en aies déjà envoyé plus que le quota autorisé par free, ce qui est possible si ton site est squatté par un site de spam à ton insu
A combien est le quota?
Car j'avais un site sur ce serveur qui m'envoyait des mails de temps en temps et pendant un petit moment.
Peut-etre est il atteint.
Oui déja essayé tout ce que tu as dit.
Car j'avais un site sur ce serveur qui m'envoyait des mails de temps en temps et pendant un petit moment.
Peut-etre est il atteint.
Oui déja essayé tout ce que tu as dit.
Je ne le connais pas par coeur, il est quelque part sur leur site. C'est 200 ou 2000 mails par semaine (le compteur est remis à 0 toutes les semaines)
Ha ben c'est pas ça.
Le problème dure depuis plus d'une semaine.
2-3 semaines.
Faut-il activer une option sur le serveur? (désolé mais je ne vois plus que ca).
Le problème dure depuis plus d'une semaine.
2-3 semaines.
Faut-il activer une option sur le serveur? (désolé mais je ne vois plus que ca).