Rechercher : dans
Par :

Un formulaire d'envoi de mail sur son site?

Dernière réponse le 16 mai 2009 à 12:52:03 Nugz, le 14 mai 2009 à 17:54:08 
 Signaler ce message aux modérateurs

Bonjour,

J'aimerais bien mettre un formulaire d'envoi de mail sur mon site web. Après de nombreux essais, j'ai toujours des erreurs au moment de l'envoie proprement dit.
Alors question basique: Faut-il qu'un serveur de mail tourne sur le serveur web pour que ça fonctionne? Faut-il que le port 25 soit open?

Merci d'avance,

;)

Configuration: Windows XP
Firefox 3.0.10

Meilleures réponses pour « un formulaire d'envoi de mail sur son site? » dans :
[Webmaster] Un formulaire de contact pour votre site VoirCe formulaire permet d'avoir une page pour être contacté sur son site, sans utiliser de logiciel de messagerie. La personne qui vous contacte indique son adresse, l'objet du message et son message (évidemment). Le code est une version...
[Outlook/ThunderBird/Incredimail] Envoi/Réception de mail VoirVous avez des problèmes d'envoi ou de réception de mail dans votre client de messagerie ? Cet article va vous aider à diagnostiquer le problème. 1. Introduction à la messagerie 2. Problèmes d'envoi de mail 3. Problèmes de réception de...
[Langages] Envoyer un mail avec pièce jointe VoirLes mails, tout comme les pages web, sont livrés avec des en-têtes (headers en anglais). Ces en-têtes servent à donner quelques détails nécessaires comme l'adresse du destinataire, celle de l'envoyeur, la date de l'envoi, le sujet du mail etc. Elles...

1

Nabla's, le 14 mai 2009 à 17:59:27

Si tu héberge chez toi, il faut modifier le php.ini ou alors utiliser la fonction iniset pour définir le serveur smtp (mets l'adresse du smtp de ton fournisseur d'accès internet

si ton site est hébergé en ligne, alors il faut voir si tu as le droit d'utiliser leur smtp lisez attentivement toutes les réponses à vos questions .. o­n gagnera du temps.
tu n'aimes pas les réponses trop techniques? Je n'aime pas l­es SMS. Faisons tous un effort ....

Répondre à Nabla's

2

Nugz, le 14 mai 2009 à 18:29:26

Merci pour ta réponse, en fait j'utilise un rps de chez ovh, donc je suis chez moi sans vraiment l'être...

Répondre à Nugz

3

Nabla's, le 15 mai 2009 à 09:34:32

Si le serveur apache est chez toi, alors dans ton code tu met

ini_set("SMTP","mail.fournisseur d'accès.com" ); //liste dispo ici http://www.commentcamarche.net/faq/sujet 893 adresses des serveurs pop et smtp des principaux fai

puis utilises la fonction mail:
http://www.php.net/manual/en/function.mail.php lisez attentivement toutes les réponses à vos questions .. on gagnera du temps.
tu n'aimes pas les réponses trop techniques? Je n'aime pas les SMS. Faisons tous un effort ....

Répondre à Nabla's

4

Nugz, le 15 mai 2009 à 12:06:57

Merci encore. Ça coince toujours! J'ai configuré mon php.ini comme suit:

[mail function]
; For Win32 only.
SMTP = relay.edpnet.be
smtp_port = 25

; For Win32 only.
sendmail_from = monmail@edpnet.be



et voici le php lié au formulaire d'envoie:

<?php
	/*
		********************************************************************************************
		CONFIGURATION
		********************************************************************************************
	*/
	// destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule
	$destinataire = 'monmail@edpnet.be';

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

	// 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.";

	// Messages d'erreur du formulaire
	$message_erreur_formulaire = "Vous devez d'abord <a href=\"envoie.html\">envoyer le formulaire</a>.";
	$message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.";

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

	// on teste si le formulaire a été soumis
	if (!isset($_POST['envoi']))
	{
		// formulaire non envoyé
		echo '<p>'.$message_erreur_formulaire.'</p>'."\n";
	}
	else
	{
		/*
		 * 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;
		};

		// formulaire envoyé, on récupère tous les champs.
		$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']) : '';

		// 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é

		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 = str_replace("&#039;","'",$message);
			$message = str_replace("&#8217;","'",$message);
			$message = str_replace("&quot;",'"',$message);
			$message = str_replace('<br>','',$message);
			$message = str_replace('<br />','',$message);
			$message = str_replace("<","<",$message);
			$message = str_replace(">",">",$message);
			$message = str_replace("&amp;","&",$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="envoie.html">Retour au formulaire</a></p>'."\n";
		};
	}; // fin du if (!isset($_POST['envoi']))
?>


Merci d'avance.

Répondre à Nugz

5

 Nabla's, le 16 mai 2009 à 12:52:03

à vérifier: es ce que ton FAI acccèpte les connexions SMTP sans authentification ... gagnons du temps: lisez attentivement toutes les réponses à ­vos questions!
tu n'aimes pas les réponses techniques? Je n'aime pas les SM­S. Faisons un effort ....

Répondre à Nabla's
Collection CommentÇaMarche.net