Envoie mail php

Fermé
jean-ba88 Messages postés 223 Date d'inscription jeudi 17 mai 2007 Statut Membre Dernière intervention 26 décembre 2009 - 13 août 2009 à 23:38
niconovice Messages postés 954 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 3 mars 2014 - 11 sept. 2009 à 23:23
Bonjour,
1ère question
j'ai installé un script de contact sur mon serveur web mais quand je le remplis il me marque
Votre message nous est bien parvenu !

mais 2 heures plus tard je n'ai toujours rien
quel pourrait être le problème ??
2ème questions
je me suis dit je vais installer le script sur un hébergeur où ça fonctionne et je vais faire une include
du coup j'aimis ça :
<?php
include("http://nomdusite.com/contact.php");
?>

Mais l'hébergeur me donne cette erreur :
Warning: file_get_contents(contacterreur.html) [function.file-get-contents]: failed to open stream: No such file or directory in /home/******/web/www/****//contact.php on line 601

Que puis je faire pour que je puisse inclure ma page php?
Merci d'avance
Cordialement Jeanba88
A voir également:

14 réponses

niconovice Messages postés 954 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 3 mars 2014 86
13 août 2009 à 23:42
salut perso pour mon formulaire je l'ai nommé "index.php" dans le dossier contact, le resultat dans la barre d'adress est http://monsite.com/contact... Pour le reste je sais pas trop lol, une pierre à l'edifice ?!
0
jean-ba88 Messages postés 223 Date d'inscription jeudi 17 mai 2007 Statut Membre Dernière intervention 26 décembre 2009 14
13 août 2009 à 23:50
euh je ne peut plus modifier mais en faite le message d'erreur c'est ça :
Warning: include(http://ffefqzdzv.com/contact.php) [function.include]: failed to open stream: No such file or directory in /home//web/www//public/related/contact.php on line 2

Warning: include() [function.include]: Failed opening 'http://frfv.com/contact.php' for inclusion (include_path='.:/usr/local/php-5.2.9/lib/php') in /home//web/www///public/related/contact.php on line 2
0
Yoan Messages postés 11795 Date d'inscription mardi 1 février 2005 Statut Modérateur Dernière intervention 10 décembre 2023 2 327
14 août 2009 à 00:11
Pour le premier problème comme quoi tu ne reçois jamais d'e-mail : note que les e-mails sont envoyés à partir d'un serveur SMTP. Pour envoyer un e-mail à partir d'un serveur WEB il faut établir la connexion avec un serveur SMTP.
Soit tu en installes un localement (EXIM ou autre), soit tu n'utilises pas la fonction mail() directement mais tu te connectes à un serveur mail distant (utilise une librairie toute prête du genre PHPMailer)

Pour le second problème, tu ne peux heureusement pas faire un include d'un fichier PHP distant. Enfin, tu peux mais ça ne donnera pas le résultat escompté. Parce que le serveur distant ne fournira pas au serveur local directement le fichier PHP, il va d'abord l'interpréter, puis ensuite le transmettre.

En faisant sur mon serveur local un include("https://www.commentcamarche.net/index.php3"); je n'exécute pas le code dans index.php3, il est exécuté par le serveur WEB de CCM. Ce que je récupère moi, ce n'est plus du code PHP mais du code HTML.

Si tu veux exécuter à proprement dit le fichier distant, il faut soit désactiver l'interpréteur PHP sur le serveur distant (ce qui est très dangereux puisque le code PHP sera visible à quiconque possède l'adresse du fichier), soit (j'imagine) établir une connexion sécurisée mais je ne sais pas du tout comment ça peut marcher je te laisse chercher.
0
jean-ba88 Messages postés 223 Date d'inscription jeudi 17 mai 2007 Statut Membre Dernière intervention 26 décembre 2009 14
14 août 2009 à 16:31
j'ai essayer phpmailer mais j'ai rien compris ^^ peut tu m'aider ?
0
Yoan Messages postés 11795 Date d'inscription mardi 1 février 2005 Statut Modérateur Dernière intervention 10 décembre 2023 2 327
17 août 2009 à 11:50
Il te faut un serveur smtp !
Certains services d'hébergement en proposent peut-être pour te connecter depuis un hôte extérieur, je ne sais pas.

Mais si tu héberges en local tu devrais t'installer un smtp local. Exim, Qmail, Exchange .... Par contre je n'ai pas la moindre idée de comment ça se paramètre.
0
niconovice Messages postés 954 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 3 mars 2014 86
17 août 2009 à 19:34
tiens, ce script est très compréhensible et il a le mérite de marcher:

<div class="yop">
<form action="<?=$_SERVER['PHP_SELF']?>" method="post" enctype="application/x-www-form-urlencoded">
<fieldset>
<legend>Votre message</legend>
<table border="0">
<tr>
<td>Votre nom</td>
<td><input type="text" name="name" size="10" maxlength="10"/></td>
</tr>
<tr>
<td>Votre prénom</td>
<td><input type="text" name="surname" size="10" maxlength="10"/></td>
</tr>

<tr>
<td>Votre message</td>
<td><textarea name="message" rows="8" cols="45">Votre message ici.</textarea>
</td>
</tr>
<tr>
<td colspan="2">  <input type="submit" name="envoie" value="OK"/></td>
</tr>
</table>
</fieldset>
</form>
</div>

<?php


if(isset($_POST['name'])AND isset($_POST['surname'])AND isset($_POST['message']))
{

$objet="message";
$text.="De ".$_POST['name'].".\r\n";
$text.="".$_POST['surname'].".\r\n";
$text.="".$_POST['message'].".\r\n";

if(mail("jsuispala@hotmail.fr",$objet,$text))
{
echo "<h1>Le mail a bien était envoyé</h1>";
}
else
{
echo "<h1>Le mail n'a pas était envoyé: recommencez!</h1>";
}
}
?>

enregistre cette page sous index.php dans le dossier contact, quand les personnes vont arriver sur contact cette page s'affichera et au clic tu recevras le mail sans probleme dans les 5 secondes, enjoy !
0
niconovice Messages postés 954 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 3 mars 2014 86
17 août 2009 à 19:38
sinon au pire je t'envoie le mien sous forme de zip qui est franchement mieux, tu peux le voir à cette adresse jusqu'à ce soir minuit:

http://ace-zone.net/contacts/

test le j'suis pas mécontent du boulot :p (mais j'vais encore affiner) :p
0

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

Posez votre question
Yoan Messages postés 11795 Date d'inscription mardi 1 février 2005 Statut Modérateur Dernière intervention 10 décembre 2023 2 327
17 août 2009 à 20:43
Hé mais j'y pense, je suis parti dans mes idées mais en fin de compte ton serveur web est installé localement ou il est hébergé par un service approprié ?
0
jean-ba88 Messages postés 223 Date d'inscription jeudi 17 mai 2007 Statut Membre Dernière intervention 26 décembre 2009 14
18 août 2009 à 00:16
niconovice : je veut bien ton script ;)
yoan : le loueur de l'hébergement chez qui je suis s'appelle allo-heberge.com voila :)
0
Yoan Messages postés 11795 Date d'inscription mardi 1 février 2005 Statut Modérateur Dernière intervention 10 décembre 2023 2 327
18 août 2009 à 00:25
Pardon, je ne sais pas pourquoi mais j'étais persuadé sur tu travaillais localement.

Avant d'aller piquer du code à droite-à gauche qui ne servira à rien si tu ne peux pas envoyer un bête e-mail commence par aller voir dans la doc fournie par ton hébergeur que la fonction mail(), si tu l'utilises est activée ou bien (si mail() ne fonctionne pas) pour connaître l'hôte/le login/le mdp à utiliser pour utiliser le serveur smtp (données qu'il faudra rentrer dans PHPMailer).

Par la même occasion donne-nous ton code pour la page contact.php
0
jean-ba88 Messages postés 223 Date d'inscription jeudi 17 mai 2007 Statut Membre Dernière intervention 26 décembre 2009 14
18 août 2009 à 00:36
Je vais envoyer un mail à mon hébergeur pour savoir je vous dis la réponse après
0
Yoan Messages postés 11795 Date d'inscription mardi 1 février 2005 Statut Modérateur Dernière intervention 10 décembre 2023 2 327
18 août 2009 à 00:38
Donne nous ton code, si ça se trouve ton script il est foireux :)
0
jean-ba88 Messages postés 223 Date d'inscription jeudi 17 mai 2007 Statut Membre Dernière intervention 26 décembre 2009 14
18 août 2009 à 00:47
Mon script a été tester par mes soins sur un autre hébergeur (000webhost) et il fonctionne donc à mon avis ça vient pas de lui
mais je le donne quand même :
<?php
	/*
		********************************************************************************************
		CONFIGURATION
		********************************************************************************************
	*/
	// destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule
	$destinataire = 'jean-ba88@hotmail.fr';

	// copie ? (envoie une copie au visiteur)
	$copie = 'oui';

	// Action du formulaire (si votre page a des paramètres dans l'URL)
	// si cette page est index.php?page=contact alors mettez index.php?page=contact
	// sinon, laissez vide
	$form_action = '';

	// Messages de confirmation du mail
	$message_envoye = "Votre message nous est bien parvenu !";
	$message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP.";

	// Message d'erreur du formulaire
	$message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.";

	/*
		********************************************************************************************
		FIN DE LA CONFIGURATION
		********************************************************************************************
	*/

	/*
	 * cette fonction sert à nettoyer et enregistrer un texte
	 */
	function Rec($text)
	{
		$text = trim($text); // delete white spaces after & before text
		if (1 === get_magic_quotes_gpc())
		{
			$stripslashes = create_function('$txt', 'return stripslashes($txt);');
		}
		else
		{
			$stripslashes = create_function('$txt', 'return $txt;');
		}

		// magic quotes ?
		$text = $stripslashes($text);
		$text = htmlspecialchars($text, ENT_QUOTES); // converts to string with " and ' as well
		$text = nl2br($text);
		return $text;
	};

	/*
	 * Cette fonction sert à vérifier la syntaxe d'un email
	 */
	function IsEmail($email)
	{
		$pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$";
		return (eregi($pattern,$email)) ? true : false;
	};

	$err_formulaire = false; // sert pour remplir le formulaire en cas d'erreur si besoin

	// si formulaire envoyé, on récupère tous les champs. Sinon, on initialise les variables.
	$nom     = (isset($_POST['nom']))     ? Rec($_POST['nom'])     : '';
	$email   = (isset($_POST['email']))   ? Rec($_POST['email'])   : '';
	$objet   = (isset($_POST['objet']))   ? Rec($_POST['objet'])   : '';
	$message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';

	if (isset($_POST['envoi']))
	{
		// On va vérifier les variables et l'email ...
		$email = (IsEmail($email)) ? $email : ''; // soit l'email est vide si erroné, soit il vaut l'email entré
		$err_formulaire = (IsEmail($email)) ? false : true;

		if (($nom != '') && ($email != '') && ($objet != '') && ($message != ''))
		{
			// les 4 variables sont remplies, on génère puis envoie le mail
			$headers = 'From: '.$nom.' <'.$email.'>' . "\r\n";

			// envoyer une copie au visiteur ?
			if ($copie == 'oui')
			{
				$cible = $destinataire.','.$email;
			}
			else
			{
				$cible = $destinataire;
			};

			// Remplacement de certains caractères spéciaux
			$message = html_entity_decode($message);
			$message = str_replace('&#039;',"'",$message);
			$message = str_replace('&#8217;',"'",$message);
			$message = str_replace('<br>','',$message);
			$message = str_replace('<br />','',$message);

			// Envoi du mail
			if (mail($cible, $objet, $message, $headers))
			{
				echo '<p>'.$message_envoye.'</p>'."\n";
			}
			else
			{
				echo '<p>'.$message_non_envoye.'</p>'."\n";
			};
		}
		else
		{
			// une des 3 variables (ou plus) est vide ...
			echo '<p>'.$message_formulaire_invalide.' <a href="contact.php">Retour au formulaire</a></p>'."\n";
			$err_formulaire = true;
		};
	}; // fin du if (!isset($_POST['envoi']))

	if (($err_formulaire) || (!isset($_POST['envoi'])))
	{
		// afficher le formulaire
		echo '<form id="contact" method="post" action="'.$form_action.'">'."\n";
		echo '	<fieldset><legend>Vos coordonnées</legend>'."\n";
		echo '		<p>'."\n";
		echo '			<label for="nom">Nom :</label>'."\n";
		echo '			<input type="text" id="nom" name="nom" value="'.stripslashes($nom).'" tabindex="1" />'."\n";
		echo '		</p>'."\n";
		echo '		<p>'."\n";
		echo '			<label for="email">Email :</label>'."\n";
		echo '			<input type="text" id="email" name="email" value="'.stripslashes($email).'" tabindex="2" />'."\n";
		echo '		</p>'."\n";
		echo '	</fieldset>'."\n";

		echo '	<fieldset><legend>Votre message :</legend>'."\n";
		echo '		<p>'."\n";
		echo '			<label for="objet">Objet :</label>'."\n";
		echo '			<input type="text" id="objet" name="objet" value="'.stripslashes($objet).'" tabindex="3" />'."\n";
		echo '		</p>'."\n";
		echo '		<p>'."\n";
		echo '			<label for="message">Message :</label>'."\n";
		echo '			<textarea id="message" name="message" tabindex="4" cols="30" rows="8">'.stripslashes($message).'</textarea>'."\n";
		echo '		</p>'."\n";
		echo '	</fieldset>'."\n";

		echo '	<div style="text-align:center;"><input type="submit" name="envoi" value="Envoyer le formulaire !" /></div>'."\n";
		echo '</form>'."\n";
	};
?>
0
Yoan Messages postés 11795 Date d'inscription mardi 1 février 2005 Statut Modérateur Dernière intervention 10 décembre 2023 2 327
18 août 2009 à 00:57
Oui ça a l'air bon.

Mais les mails servers de ton hébergeur sont peut-être blacklistés chez hotmail. D'ailleurs hotmail est particulièrement chiant avec ça (et pourtant il n'est pas plus résistant au SPAM que les autres). Essaye avec plusieurs autres adresses de destination.
0
jean-ba88 Messages postés 223 Date d'inscription jeudi 17 mai 2007 Statut Membre Dernière intervention 26 décembre 2009 14
18 août 2009 à 01:11
je regarderai ça merci
0
niconovice Messages postés 954 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 3 mars 2014 86
18 août 2009 à 18:47
il est super ton script, verifie dans tes "indesirables/spams" tes mails doivent y etre
0
jean-ba88 Messages postés 223 Date d'inscription jeudi 17 mai 2007 Statut Membre Dernière intervention 26 décembre 2009 14
19 août 2009 à 23:10
ils viennent de me répondre en me disant que si c'était un form mail ça devrai fonctionner mail la ce que je fais dans le script c'est un form mail ??
0
Yoan Messages postés 11795 Date d'inscription mardi 1 février 2005 Statut Modérateur Dernière intervention 10 décembre 2023 2 327
19 août 2009 à 23:47
Oui mais bon on s'en fout de leur formulaire mail, ce qu'on veut savoir c'est si la fonction mail() fonctionne réellement :) Mais bon, si ils n'ont rien dit ça doit être que oui.

T'as essayé avec une autre adresse genre gmail, free ou autre ?
0
jean-ba88 Messages postés 223 Date d'inscription jeudi 17 mai 2007 Statut Membre Dernière intervention 26 décembre 2009 14
20 août 2009 à 11:40
non je n'ai pas essayer mais je vais le faire
edit : cela fonctionne sur gmail mais comment faire pour que ça arrive sur hotmail ??
0
Yoan Messages postés 11795 Date d'inscription mardi 1 février 2005 Statut Modérateur Dernière intervention 10 décembre 2023 2 327
20 août 2009 à 14:26
Les serveurs de ton hébergeur sont peut-être blacklistés suite à des abus.

En théorie lorsqu'hotmail refuse un mail "for policy reasons" il envoie un e-mail explicite au "Return Path". Mais tu n'as pas forcément accès à cette boîte mail. C'est ton hébergeur qui peut faire avancer les choses. D'abord vérifier qu'effectivement les e-mail sont refusés (en utilisant SNDS) puis en faisant le nécessaire pour rétablir la situation.

Envoie-moi un e-mail à partir de PHP à l'adresse que tu peux lire dans mon profil, pour voir.
0
jean-ba88 Messages postés 223 Date d'inscription jeudi 17 mai 2007 Statut Membre Dernière intervention 26 décembre 2009 14
20 août 2009 à 21:45
comment je peut connaitre l'ip ??
0
Yoan Messages postés 11795 Date d'inscription mardi 1 février 2005 Statut Modérateur Dernière intervention 10 décembre 2023 2 327
21 août 2009 à 19:04
L'IP c'est 194.150.236.209

Par contre tu ne devrais pas envoyer tes mails avec un champs From:uneadressehotmail@hotmail.fr
Puisque hotmail sait très bien que seuls ses mx peuvent envoyer des mails hotmail. C'est peut-être là la source du problème (mais si les serveurs ont été bannis ça ne fonctionnera pas immédiatement même si tu changes de From il faut que ton hébergeur s'en occupe)

La faute ne tombe pas forcément sur toi. C'est l'inconvénient de l'hébergement mutualisé, c'est peut-être quelqu'un d'autre qui a commis un abus avec son site.

Sinon SPF est activé et semble bien fonctionner donc ça ne pose pas de problème. Rien de particulier dans les en-têtes.
0
jean-ba88 Messages postés 223 Date d'inscription jeudi 17 mai 2007 Statut Membre Dernière intervention 26 décembre 2009 14
21 août 2009 à 19:43
il faudrait que je trouve un moyen d'avoir une redirection d'email gratuit
merci de votre aide
0
niconovice Messages postés 954 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 3 mars 2014 86
11 sept. 2009 à 23:23
salut,
file mon ton adresse mail si tu veux pour que je t'envoi le zip de mon formulaire mais il y a un bug que je n'ai pas eu le temps de voir (le bug c'est que le champ mail te renvoi le mail de l'envoyeur et pas celui rempli dans le champ) pas terrible mais bon celui ci fonctionne en tout les cas, tu peux toujours tester. ha, encore une chose vu qu'il est lié à une librairie il est assez lourd (50mo je crois) mais bon pas tres grave comme truc.
voilà, a+
0