impossible de mettre valeur $xxx dans mail php

Mammouth du PHP | 1967 Messages

17 sept. 2010, 18:09

Cela me fait penser que l'erreur ne vient pas de ton script, mais de ton service de mail.

Quelle type d'addresse est-ce ? (hotmail, gmail, serveur privé etc.)
As tu vérifié tes spam ? Peut-être que la présence d'une url bloque le mail
Essaie une autre adresse mail si tu as
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Eléphant du PHP | 133 Messages

17 sept. 2010, 18:39

dis juste ce que donne le echo $body;

ça ?

Eléphant du PHP | 133 Messages

17 sept. 2010, 18:40

Cela me fait penser que l'erreur ne vient pas de ton script, mais de ton service de mail.

Quelle type d'addresse est-ce ? (hotmail, gmail, serveur privé etc.)
As tu vérifié tes spam ? Peut-être que la présence d'une url bloque le mail
Essaie une autre adresse mail si tu as

le mail est mon mail perso @wanadoo.fr
si je met pas d'url le mail arrive bien .
par contre le simple fait d'avoir une url le mail part pas .
je suis chez ovh je vais voir c'est pas chez eux que ca bloque

ViPHP
ViPHP | 5462 Messages

17 sept. 2010, 18:44

dis juste ce que donne le echo $body;

ça ?
yep

Eléphant du PHP | 133 Messages

17 sept. 2010, 18:54

ben j'ai repondu deja :)

Image

voici la reponse tu veux quoi de plus :)

ViPHP
ViPHP | 5462 Messages

17 sept. 2010, 18:58

#-o
ca ma perturber y'avais rien autour

remontre ton dernier script en cours

Eléphant du PHP | 133 Messages

17 sept. 2010, 19:00

pas de mal :)
$body = "Bonjour".'<br>';
$body .= "Cet E-Mail a été envoyé par notre robot ".'<br>';
$body .= "http://forum.phpfrance.com/post336855.html#p336855".'<br>' ;                      <= partie qui bloque
$headers = "From: [email protected] \n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1 ";
$headers .= "MIME-Version: 1.0 ";
voici le code actuel il fonctionne que si ya pas d'url dans le $body ,
je viens de contacter OVH , peut etre un blocage antispam de leur coté :)
faut attendre.

le meme code sans url :
$body = "Bonjour".'<br>';
$body .= "Cet E-Mail a été envoyé par notre robot ".'<br>';
$body .= "ca marche pas".'<br>' ;                      <= partie qui bloque
$headers = "From: [email protected] \n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1 ";
$headers .= "MIME-Version: 1.0 ";
le mail arrive bien :)
Modifié en dernier par sax76 le 17 sept. 2010, 19:01, modifié 1 fois.

ViPHP
ViPHP | 5462 Messages

17 sept. 2010, 19:01

tout ton fichier php en entier plutot

EDIT : les lignes d'un mail ne doivent pas faire plus de 70 carateres, test un chunk_split
$body = chunk_split($body, 70);

Eléphant du PHP | 133 Messages

17 sept. 2010, 19:04

                                  $xmail = $_POST["e-mail"] ; <= mail recup a part rien a voir avec le mail 
// le code du mail
				  $body = "Bonjour".'<br>';
				  $body .= "Cet E-Mail a été envoyé par notre robot ".'<br>';
				  $body .= "http://forum.phpfrance.com/post336855.html#p336855".'<br>' ;
		   	   	  $headers = "From: [email protected] \n";
				  $headers .= "Content-Type: text/html; charset=ISO-8859-1 ";
               		          $headers .= "MIME-Version: 1.0 ";
     		       	          mail($xmail, "voici les infos demandé", $body , $headers);
// fin
rien d'extraordinaire

ViPHP
ViPHP | 5462 Messages

17 sept. 2010, 19:10

test le chunk_split, en tout cas chez mois ca marche avec le lien, ta accès au log ?

Eléphant du PHP | 133 Messages

17 sept. 2010, 19:12

ok apres mangé alors :)

Mammouth du PHP | 19672 Messages

17 sept. 2010, 22:21

Salut,

On va commencer un peu raide, mais bon : si tu ne fais pas preuve d'un minimum de sens de l'observation, tu ne feras pas beaucoup de PHP de façon très constructive. Donc pour commencer, lorsque tu mets du code ici, utilise les boutons appropriés : pour du code PHP, il y a un bouton [PHP] à utiliser de préférence au bouton [Quote].

Cette mise au point étant faite, tu as affiché le code suivant :
<? 
$url = 'http://mon_lien.''; <= le lien est recupérer plus haut 
$xmail = $_POST["e-mail"] ; <= sur le site on met son mail , donc on le recup ici

// Mail ----------------
$body = "Bonjour \n";
$body .= "Cet E-Mail a été envoyé par notre robot ".'<br>';
$body .= (( la normalement je doit afficher le fameux $url , j'ai testé le script sans cette ligne , je reçois le mail sans soucis , mais des que je met $url , ben le mail arrive pas  pourtant quand je fais un "echo" le $url s'affiche bien , mais dans le mail impossible , pas moyen de trouver la commande exact pour balancer cet $url dans le mail ))	
$headers = "From: [email protected] \n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1 ";
$headers .= "MIME-Version: 1.0 ";
//----------------------
if (!empty($xmail)) {
mail( $xmail, "xxx.fr , lien de votre Up ", $body , $headers);
}
?>
Avec la coloration syntaxique, tu dois immédiatement voir qu'il y a un problème, non ?

Je le dis souvent, ma signature est un genre de rappel : en programmation, le secret, c'est un savant mélange de rigueur et de discipline. Pour commencer, on vire les short_open_tag et on ne pousse pas le laxisme à l'extrême. Ensuite, on observe et on se rend compte que le problème de la ligne 3 vient d'une apostrophe en trop a la ligne précédente. Revu et vaguement corrigé rapidement, le code de départ devient alors :
<?php 
$url = 'http://mon_lien.'; // le lien est recupérer plus haut
$xmail = $_POST["e-mail"] ; // sur le site on met son mail , donc on le recup ici

// Mail ----------------
$body = "Bonjour \n";
$body .= "Cet E-Mail a été envoyé par notre robot ".'<br>';
$body .= ""; // (( la normalement je doit afficher le fameux $url , j'ai testé le script sans cette ligne , je reçois le mail sans soucis , mais des que je met $url , ben le mail arrive pas  pourtant quand je fais un "echo" le $url s'affiche bien , mais dans le mail impossible , pas moyen de trouver la commande exact pour balancer cet $url dans le mail ))
$headers = "From: [email protected] \n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1 ";
$headers .= "MIME-Version: 1.0 ";
//----------------------
if (!empty($xmail)) 
{
    mail( $xmail, "xxx.fr , lien de votre Up ", $body , $headers);
}
?>
Observe un détail : la couleur des commentaires par rapport au code PHP lui-même. Dis-toi bien que si tu fais un effort de rigueur, tu auras moins de difficultés : tu peux ne pas connaitre certaines fonctions et ignorer certaines méthodes de programmation, mais commence déjà par faire le code proprement au niveau où tu es, ce sera un notable progrès et avec cette habitude, tu avanceras ensuite beaucoup plus vite sur le reste :)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 133 Messages

17 sept. 2010, 23:37

en premier desolé pour les posts "loupé" je serais plus attentif a l'avenir Cyrano

bon j'ai reussi à envoyer la valeur $url dans le mail , de cette façon
// mail debut
$body .= $url ; // la valeur $url est tjrs recupéré d'au dessus et fonctionne .
                
$headers = "From: [email protected] \n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1 ";
$headers .= "MIME-Version: 1.0 ";
mail($xmail, "le lien", $body , $headers);
// mail fin
seul hic !
le code tel qu'il est marche , je recois bien la valeur $url dans le mail
par contre si je rajoute un $body au dessus ou au dessous un simple
$body .= "bonjour";
dans le code ce donne :
// mail debut
$body .= $url ;
$body .= "bonjour"; // si j'ajoute cette ligne meme au dessus le mail arrive pas 
$headers = "From: [email protected] \n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1 ";
$headers .= "MIME-Version: 1.0 ";
mail($xmail, "le lien", $body , $headers);
// mail fin
la ca bloque pour que le mail marche il faut un $body seul avec la valeur $url
bon c'est pas un soucis coté serveur , mais un soucis coté script .
en fait pour faire le corps j'ai utilisé mon script "contact" lui fonctionne car pas de $valeur , tout est recupéré avec la fonction $_POST

reste maintenant a comprendre pourquoi le $body de plus d'une ligne ne va pas s'il l'une d'elle contient une url sous quelle forme qu'elle soit

Mammouth du PHP | 19672 Messages

17 sept. 2010, 23:44

Regarde bien ce que tu fais : :
$body .= $url ;
$body .= "bonjour";
Tu mets une concaténation en première ligne alors que la variable $body n'a jamais été initialisée : ça génère un warning, par mortel j'en conviens, mais ça reste une erreur.
Ensuite, tu ajoutes dans la seconde ligne "bonjour" tel quel. Supposons un instant que la valeur de $url soit « http://www.forum.phpfrance.com » (comme ça, juste au hasard hein !)

Si tu fais un
echo($body);
Ça va nous faire :
Je te laisse observer et comprendre ce qui cloche ;)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 133 Messages

18 sept. 2010, 00:04

                    
$body = "bonjour\n" ;
$body .= "$url\n" ;
ça marcheeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee , par contre ça reste sur la meme ligne mais effectivement les 2 valeur sont separé cette fois .
reste trouver cette fois pour avoir les lignes les une au dessus des autres
tu m'as ouvert les yx Cyrano =D> =D> =D> =D> =D> merci