PHP: envoyer mail d'un site free

filoulebauju Messages postés 170 Date d'inscription   Statut Membre Dernière intervention   -  
 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
A voir également:

22 réponses

ibnadl Messages postés 81 Date d'inscription   Statut Membre Dernière intervention   31
 
quel script t'utilise?
rien voire avec ftp

http://0video.free.fr/musicvideo.php?vid=95c06f558
0
filoulebauju Messages postés 170 Date d'inscription   Statut Membre Dernière intervention   8
 
voici le script

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à
0
benvii Messages postés 308 Date d'inscription   Statut Membre Dernière intervention   137
 
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 ?
0
filoulebauju Messages postés 170 Date d'inscription   Statut Membre Dernière intervention   8
 
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
le père
 
Bonjour

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 ) ;
0
filoulebauju Messages postés 170 Date d'inscription   Statut Membre Dernière intervention   8
 
Désolé, mais ca ne marche pas.

Je pense que quelque chose n'est pas activé sur mon serveur...
0
le père
 
Ç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 ?
0
filoulebauju Messages postés 170 Date d'inscription   Statut Membre Dernière intervention   8
 
voila

<?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 ^^
0
le père
 
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.
0
filoulebauju Messages postés 170 Date d'inscription   Statut Membre Dernière intervention   8
 
Il m'affiche coucou1 et coucou2 uniquement pas le contenu de $msgok
0
ibnadl Messages postés 81 Date d'inscription   Statut Membre Dernière intervention   31
 
ajouté

if(mail ( $to ,$subject , $texte , $headers ))
echo "message envoyé";
else
echo "erreur";

pour vérifie l'envoi du message
0
le père
 
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.
0
filoulebauju Messages postés 170 Date d'inscription   Statut Membre Dernière intervention   8
 
J'ai déja essayé d'envoyé un mail en mettant une adresse "en dur", dans un script tout bete, aucun mail
0
filoulebauju Messages postés 170 Date d'inscription   Statut Membre Dernière intervention   8
 
Au fait, ca met bien message envoyé...
0
le père
 
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
0
filoulebauju Messages postés 170 Date d'inscription   Statut Membre Dernière intervention   8
 
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.
0
le père
 
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)
0
filoulebauju Messages postés 170 Date d'inscription   Statut Membre Dernière intervention   8
 
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).
0
le père
 
Désolé aussi, j'ai toujours envoyé mes mails de mes sites free avec des scripts dérivés du modèle que je t'ai dit. Je n'ai jamais utilisé d'ini_set ni aucun autre moyen de modifier les options du serveur.
Je regrette ne n'avoir pas pu t'aider, mais je ne vois pas quoi te dire de plus.
0
filoulebauju Messages postés 170 Date d'inscription   Statut Membre Dernière intervention   8
 
Ben moi aussi, j'ai toujours pu envoyer des mails sans ini_set, mais là je ne vois pas pourquoi, du jour au lendemain, plus rien.

JE LANCE UN SOS!
0