PHP: envoyer mail d'un site free

Fermé
filoulebauju Messages postés 170 Date d'inscription mercredi 23 avril 2008 Statut Membre Dernière intervention 23 octobre 2018 - 13 avril 2009 à 19:23
 le père - 14 avril 2009 à 01:04
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 dimanche 21 décembre 2008 Statut Membre Dernière intervention 25 novembre 2009 31
13 avril 2009 à 19:33
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 mercredi 23 avril 2008 Statut Membre Dernière intervention 23 octobre 2018 8
13 avril 2009 à 20:33
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 dimanche 8 juin 2008 Statut Membre Dernière intervention 28 octobre 2010 137
13 avril 2009 à 20:46
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 mercredi 23 avril 2008 Statut Membre Dernière intervention 23 octobre 2018 8
13 avril 2009 à 20:54
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
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 mercredi 23 avril 2008 Statut Membre Dernière intervention 23 octobre 2018 8
13 avril 2009 à 23:10
Désolé, mais ca ne marche pas.

Je pense que quelque chose n'est pas activé sur mon serveur...
0
Ç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 mercredi 23 avril 2008 Statut Membre Dernière intervention 23 octobre 2018 8
13 avril 2009 à 23:28
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
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 mercredi 23 avril 2008 Statut Membre Dernière intervention 23 octobre 2018 8
13 avril 2009 à 23:42
Il m'affiche coucou1 et coucou2 uniquement pas le contenu de $msgok
0
ibnadl Messages postés 81 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 25 novembre 2009 31
14 avril 2009 à 00:01
ajouté

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

pour vérifie l'envoi du message
0
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 mercredi 23 avril 2008 Statut Membre Dernière intervention 23 octobre 2018 8
14 avril 2009 à 00:03
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 mercredi 23 avril 2008 Statut Membre Dernière intervention 23 octobre 2018 8
14 avril 2009 à 00:11
Au fait, ca met bien message envoyé...
0
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 mercredi 23 avril 2008 Statut Membre Dernière intervention 23 octobre 2018 8
14 avril 2009 à 00:21
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
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 mercredi 23 avril 2008 Statut Membre Dernière intervention 23 octobre 2018 8
14 avril 2009 à 00:30
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
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 mercredi 23 avril 2008 Statut Membre Dernière intervention 23 octobre 2018 8
14 avril 2009 à 00:48
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