Fonction mail() défectueuse ?

Ehlmo
Invité n'ayant pas de compte PHPfrance

17 juil. 2008, 11:48

Bonjour à tous,

Je suis en train d'ajouter la validation d'inscription par mail(1) sur mon site ainsi que la fonction "Envoyer à un ami" (2).
Exemple 1: Le visiteur rempli le formulaire, il reçoit un mail avec un lien, en cliquant dessus il valide son inscription.
Exemple 2: Le visiteur rempli le formulaire en indiquant l'adresse de son "ami" et son ami reçoit le mail.
Mon problème : le mail ne s'envoie pas tout le temps.
Ma question : Cela vient-il de ma fonction ou de mon hébergeur Online.net ?
Précisions : Lorsque le mail s'envoie, tout fonctionne parfaitement. Hier soir, seulement 1 mail sur 5 arrivait à destination, ce matin, 4 sur 5 je dirais, ce qui me fait penser à une possible surcharge de Online.net, à savoir qu'il y a souvent des problèmes (FTP inaccesible pendant un quart d'heure par exemple, BD hs pendant une heure, ...)

Voici la fonction "Envoyer à un ami" :
function envoyeramimail()
{
	$mail 	     = $_REQUEST['MAIL'];
	$nom 	     = $_REQUEST['NOM'];
	$prenom 	   = $_REQUEST['PRENOM'];
	$commentaire = $_REQUEST['COMMENTAIRE'];
	$texte = "<html>
			<head></head>
			<body>
			$nom $prenom vous invite à aller voir le site du
			<a href=\"http://***************\">Test</a>
			<br/>$commentaire</body></html>";
	$headers = "From: Webmaster Site <[email protected]>\n";
	$headers .= "MIME-Version: 1.0\n";
	$headers .= "Content-Type: text/html; charset=iso-8859-1\n";
	$to = $mail;
	$subject = "Test";
	$message = $texte;
	mail($to, $subject, $message, $headers);
	affichage();
}
La fonction d'envoi du mail de validation :
function verification()
{
	$civilite 	= $_REQUEST['CIVILITE'];
	$nom 		= $_REQUEST['NOM'];
	$prenom 	= $_REQUEST['PRENOM'];
	$societe	= $_REQUEST['SOCIETE'];
	$mail  		= $_REQUEST['MAIL'];
	$cotisation = isset($_REQUEST['COTISATION']) ? $_REQUEST['COTISATION'] : 'non';
	$participe 	= isset($_REQUEST['PARTICIPE']) ? $_REQUEST['PARTICIPE'] : 'non';
	$news 		= isset($_REQUEST['NEWS']) ? $_REQUEST['NEWS'] : 'non';
	$tarif 		= $_REQUEST['TARIF'];
	$code 		= rand();
	$status		= "Attente";
	
	require ('../Inc/init.inc');
	mysql_connect($SERVER, $LOGIN, $PASSWORD);
    mysql_select_db($DATABASE);
	$query = "INSERT INTO inscription (civilite, nom, prenom, societe, mail, cotisation, participe, news, tarif, code, status)
			  values ('$civilite', '$nom', '$prenom', '$societe', '$mail', '$cotisation', '$participe', '$news', '$tarif', '$code', '$status')";
	$result = mysql_query($query) OR die('Requête invalide : ' . mysql_error());
	
	//Partie ENVOI MAIL
	$headers = "From: Webmaster Site <[email protected]>\n";
	$headers .= "MIME-Version: 1.0\n";
	$headers .= "Content-Type: text/html; charset=iso-8859-1\n";
	$to = $mail;
	$subject = "Confirmation d'inscription";
	$message = "<html>
				<head></head>
				<body>
				Bonjour $civilite $nom,<br/>Nous avons bien reçu votre réservation et nous vous en remercions. Afin de valider votre inscription, merci de bien vouloir cliquer sur ce lien :
				<a href=\"http://****************/***/*****.php?EX=validation&nom=$nom&code=$code\">Validation</a>
				</body></html>";
	mail($to, $subject, $message, $headers);
	affichage();
}
Qu'en pensez-vous ?
Merci d'avance.

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

17 juil. 2008, 12:30

AS-tu vérifié que ton hébergeur autorisait sans restrictions cette fonction ?
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Invité
Invité n'ayant pas de compte PHPfrance

17 juil. 2008, 13:14

voila ce qu'ils disent :
La fonction mail() de PHP est activée, cependant il y a quelques limitations :

*
pas plus de 35 destinataires par appels à la fonction
*
taille des mails limité à 2Mo
*
détection antispam

La fonction mail renvoie TRUE en cas de succès et FALSE si l'une de ces conditions n'est pas respectée.
Pour le coup de l'antispam, j'ai des doutes car j'ai aussi coder une fonction d'envoi de newsletter, et avec 10 mails ca marche très bien.

Eléphant du PHP | 422 Messages

17 juil. 2008, 18:18

Et que dis ton hébergeur quand tu lui poses la question sur le fait que des fois c'est 1 sur 5 et parfois c'est 4 sur 5 ?