Pb avec la fonction mail() php

Résolu/Fermé
AmeryCourtz Messages postés 94 Date d'inscription lundi 16 février 2009 Statut Membre Dernière intervention 6 juin 2012 - 25 juil. 2009 à 13:01
AmeryCourtz Messages postés 94 Date d'inscription lundi 16 février 2009 Statut Membre Dernière intervention 6 juin 2012 - 31 juil. 2009 à 10:31
Bonjour à tous,
Alors voila je sais que les sujets sur la fonction mail() existe à profusion sur la toile, mais malheureusement aucun n'a réussi à résoudre mon probleme jusqu'a maintenant.

Alors voila, je vous met mon code avant tout et je vous explique aprés.

function MailInscription($Mail, $Login){
		
		//Configuration du smtp
		ini_set ( ("SMTP") , ("smtp-msa.orange.fr") );//localhost
		ini_set ( ("smtp_port") , ("587") );//25/587/465
		ini_set ( ("sendmail_from") , ("adresse@orange.fr") );//you@yourdomain
		
		//Déclaration du corp du mail de validation
		$Corps = "Bonjour,";
		$Corps .= "<BR>";
		$Corps .= "Pour valider votre inscription dans la base de données, ";
		$Corps .= "<a href='adresse";
		$Corps .= $Mail;
		$Corps .= "&Login=";
		$Corps .= $Login;
		$Corps .= "'> veuillez cliquer sur ce lien";
		$Corps .= "</a> s'il vous plait";
				
		if(mail("adresse@mail.com","Confirmation d'inscription" , $Corps , "Content-type: text/html")){
			return true;
		}
		else{
			return false;
		}
	}


Donc voila ma fonction mail qui ne marche pas. honnetement je sature, l'extension smtp est valider dans mes php extension, j'ai initialiser les parametres smtp et smtp port ainsi que sendmail.

Je passe bien par mon FAI orange, mais toujours rien.

Si quelqu'un pouvait m'aider, merci d'avance.
A voir également:

8 réponses

Si tu essaie en local...ca ne fonctionnera pas^^ enfin... p-t que quelqu'un d'autre pourra t'aidé^^
0
AmeryCourtz Messages postés 94 Date d'inscription lundi 16 février 2009 Statut Membre Dernière intervention 6 juin 2012 18
28 juil. 2009 à 09:48
Le soucis c'est que même en gardant les paramètres localhost cela ne fonctionne pas. Mais je réessaierais merci ^^.

En même temps la syntaxe de la function mail() me perturbe, je suis habitué a C# et le passage des paramètres smtp comme le nom du compte et le code de connexion. Je suis surpris qu'en php il n'y est pas de verification de la sorte pour pouvoir l'utiliser.
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
28 juil. 2009 à 10:27
if(mail("adresse@mail.com","Confirmation d'inscription" , $Corps , "Content-type: text/html"))

il faut une fonction de la forme :

mail($destinataire,$sujet,$corps,$headers)

et pour le $headers "Content-type: text/html" ne suffit pas il faut From:..... ReturnPath...

etc.. vas voir sur G... comment faire

De plus orange ne permet plus les envois par smtp via le compte sans authetification. Il y a une class pour ça vas voir je crois que c'est phpMailer
0
AmeryCourtz Messages postés 94 Date d'inscription lundi 16 février 2009 Statut Membre Dernière intervention 6 juin 2012 18
28 juil. 2009 à 17:06
Oui justement , mais je voulais éviter d'avoir a utiliser phpmailer justement. Bon enfin je vois je réessaierait quand j'y reviendrait avant de le mettre sur server.

je modifierait la forme de la fonction mail() aussi, merci ;)
0

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

Posez votre question
AmeryCourtz Messages postés 94 Date d'inscription lundi 16 février 2009 Statut Membre Dernière intervention 6 juin 2012 18
30 juil. 2009 à 13:44
Bonjours tout le monde.

Bon j'ai beau simplifier au maximum il n'y a pas moyen.

Voici mon code :
//Configuration du smtp
		ini_set (("SMTP"), ("smtp-msa.orange.fr"));
		ini_set (("smtp_port"), ("587"));
		ini_set (("sendmail_from"), ("***@orange.fr"));
		
		$Mail = "***@orange.fr";
		$Corps = "Essai messages";
		$Objet = "Oublie donnees";
				
		mail($Mail, $Objet, $Corps);


Mon message de retour :
Warning: mail() [function.mail]: SMTP server response: 554 5.7.1 <***@orange.fr>: Recipient address rejected: Missing Authentication in C:\wamp\www\AnnoncePneuBoat\Corps\Function\PHP\Mail\Compte_FunctionsMailCompte.php on line 77


Si je comprend bien le message d'erreur il faut que je passe les paramètres d'authentification, mais comment et où ?? Dans le header ?

Est-ce que le probleme vient du fait que je travail en local sur wampserver ?
-Si c'est le cas comment le faire marcher en local ?
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
30 juil. 2009 à 14:00
mail($Mail, $Objet, $Corps);
déja la il te manque le $header avec from: return_path: etc...


ensuite ton message d'erreur:
SMTP server response: 554 5.7.1 <***@orange.fr>: Recipient address rejected: Missing Authentication te dit que l'authentification a échoué, donc comme je te le disait si tu es avec wampserver en local, tu vas utiliser le SMTP de orange pour atteindre le serveur de messagerie d'orange, et depuis qqs temps pour éviter l'envoi de spam qui passait ainsi, ils ont bloqué et n'autorisent cette possibilité que après authentification. (c'est à dire réservé aux clients d'orange bien identifiés)

Perso j'ai été obligé de passer par Phpmailer qui est une classe implémentant cette authentification, c'est juste un peu plus long.
0
AmeryCourtz Messages postés 94 Date d'inscription lundi 16 février 2009 Statut Membre Dernière intervention 6 juin 2012 18
30 juil. 2009 à 14:09
Moui, et suis-je obliger d'utiliser orange ou non. Enfin ma question c'est : Ayant une box orange dois-je passer obligatoirement par orange ? Normalement oui, non ?

Ensuite pour l'authentification je vais ressortir phpMailer en espérant que sa passe mieux et que l'authentification se fasse comme il faut. Aie que je regrette C# dans des cas comme celui-là.

Il n'y a pas d'autre moyen pour l'authentification ?
0
AmeryCourtz Messages postés 94 Date d'inscription lundi 16 février 2009 Statut Membre Dernière intervention 6 juin 2012 18
31 juil. 2009 à 10:31
Salut à tous,

Sa y est le problème est résolu en passant par wanadoo. Bizarement j'essayer de passer sur orange vu qu'on était censé être sur leur FAI "d'aprés un collègue" :S

Bref voici le code d'une de mes fonction en utilisant phpmailer-1.71.zip :

//Fonction d'envoi d'un mail avec les paramètres oublié
	function MailEnvoiDonnee($Mail, $Login){
				 	 
		$mail = new PHPMailer();
		$mail->IsSMTP(); // telling the class to use SMTP
		$mail->IsHTML(true);
		$mail->Host = "smtp.wanadoo.fr"; // SMTP server
		$mail->Port = 25;
		 
//From d'où on envoi le mail
		$mail->From = "****@gmail.com";
		$mail->AddAddress($Mail);
		 
		$mail->Subject = "Vos coordonnées de connection";
		$mail->Body = '<html><body><head><style></style></head>';
		$mail->Body .= "Bonjour,";
		$mail->Body .= "<br/>";
		$mail->Body .= "Voici les coordonnées de connection de votre compte :";
		$mail->Body .= "<br/>";
		$mail->Body .= "<br/>";
		$mail->Body .= "Adresse Email : ";
		$mail->Body .= $Mail;
		$mail->Body .= "<br/>";
		$mail->Body .= "Mot de passe : ";
		$mail->Body .= $Login;
		$mail->Body .= "<br/>";
		$mail->Body .= "<br/>";
		$mail->Body .= "En espérant vous revoir bientôt sur ****.com.";
		$mail->Body.='</body></html>';
			
		if(!$mail->Send()){
			return false;
		}
		else{
			return true;
		}


Merci à tous et surtout à Alain_42 ^^.

EDIT : Le "require" qui appel phpmailer est dans mon index, c'est pour ça qu'il n'est pas présent dans la fonction, mais "A ne pas oublié" ^^
0