Forum ZitePLUS

La communauté des utilisateurs du CMS ZitePLUS

Vous n'êtes pas identifié(e).

#1 11/11/2009 16:18:49

Fredo42
Membre
Inscription : 03/10/2009
Messages : 470
Site Web

[hors zite+] fonction mail() chez 1&1

Est-ce que quelqu'un qui est chez 1&1 et qui utilise la fonction mail() dans un formulaire de contact peut m'expliquer pourquoi mon code ne fonctionne pas?

<?php
$to = "admin@monnomdedomaine1&1";
$sujet = $_POST['sujet'];
$message=$_POST['message'];
$headers ='From: "Admin"<admin@monnomdedomaine1&1>'."\n";
$headers .='Reply-To: admin@monnomdedomaine1&1'."\n";
$headers .='Content-Type: text/html; charset="iso-8859-1"'."\n";
$headers .='Content-Transfer-Encoding: 8bit';
mail ($to,$sujet,$message, $headers);
?>

L'adresse admin@monnomdedomaine1&1 existe, je peux envoyer et recevoir des messages depuis mon 1&1webmail mais je ne reçois pas les mails du formulaire...
Merci de votre aide

P.S: php5 activé via .htaccess


Mieux vaut poser une question et passer pour un con, que se taire et le rester...

Hors ligne

#2 11/11/2009 17:37:01

jpg
Administrateurs
Inscription : 19/11/2008
Messages : 2 086
Site Web

Re : [hors zite+] fonction mail() chez 1&1

Bon, je suis pas chez 1&1 wink, mais as tu fait les vérifs de base:
- vérification du contenu de $to, $sujet, $message et $header avant envoi du mail (print_r ou autre) ...
- essai d'envoi du mail sans le header additionnel
- remplacement des \n par \r\n pour le champ $headers (c'est ce que préconise la doc)

a+
jean-paul

Hors ligne

#3 11/11/2009 18:12:32

Fredo42
Membre
Inscription : 03/10/2009
Messages : 470
Site Web

Re : [hors zite+] fonction mail() chez 1&1

jpg a écrit :

- vérification du contenu de $to, $sujet, $message et $header avant envoi du mail (print_r ou autre) ...  déjà fait, c'est ok
- essai d'envoi du mail sans le header additionnel déjà fait, ça change rien
- remplacement des \n par \r\n pour le champ $headers (c'est ce que préconise la doc) je vais tester... ça change rien

Merci quand même jpg


Mieux vaut poser une question et passer pour un con, que se taire et le rester...

Hors ligne

#4 11/11/2009 20:49:40

davyk
Membre
Inscription : 09/09/2008
Messages : 819
Site Web

Re : [hors zite+] fonction mail() chez 1&1

essayes ce code fredo (dans une page php, bien sûr):

<?php

	// destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule
	$destinataire = 'tonmail@tondomaine1&1.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.<br>Merci de nous avoir contacté.";
	$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.";


	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.'>' . "rn";
			$objet = 'Message en provenance du site -'.$objet.''. "rn"; 
			// 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(''',"'",$message);
			$message = str_replace('’',"'",$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>';
			}
			else
			{
				echo '<p>'.$message_non_envoye.'</p>';
			};
		}
		else
		{
			// une des 3 variables (ou plus) est vide ...
			echo '<p>'.$message_formulaire_invalide.' </p>';
			$err_formulaire = true;
		};
	}; // fin du if (!isset($_POST['envoi']))

	if (($err_formulaire) || (!isset($_POST['envoi'])))
	{
		// afficher le formulaire
		echo '<form id="mail" method="post" action="'.$form_action.'">';

		echo '			<label for="nom">Votre nom	:</label><br>';
		echo '			<input type="text" id="nom" name="nom" value="'.stripslashes($nom).'" tabindex="1" />';
		echo '		<br><br>';
		echo '		';
		echo '			<label for="email">Votre e-mail	:</label><br>';
		echo '			<input type="text" id="email" name="email" value="'.stripslashes($email).'" tabindex="2" />';
		echo '		<br><br>';
		echo '	';

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

		echo '	<div style="text-align:center;"><input type="submit" name="envoi" value="Envoyer votre message" /></div>';
		echo '</form>';
	};
?>

++ vYk

Dernière modification par davyk (11/11/2009 20:50:18)


Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows

Hors ligne

#5 12/11/2009 00:30:29

Fredo42
Membre
Inscription : 03/10/2009
Messages : 470
Site Web

Re : [hors zite+] fonction mail() chez 1&1

Merci davyk, mais ça ne fonctionne pas...


Mieux vaut poser une question et passer pour un con, que se taire et le rester...

Hors ligne

#6 12/11/2009 00:35:04

jpg
Administrateurs
Inscription : 19/11/2008
Messages : 2 086
Site Web

Re : [hors zite+] fonction mail() chez 1&1

Fredo42 a écrit :

Merci davyk, mais ça ne fonctionne pas...

Question bête, mais as tu essayé le module user_auto dans ce contexte pour voir si la fonction mail fonctionne ?
Car si ni ton code, ni celui de davyk ni celui de ziteplus ne fonctionne, peut-etre que la fonction mail n'est pas activé ou il y a une particularité 1&1.
Je présume que tu as déjà essayé de mettre en tête de ton script
   error_reporting(E_ALL);
   ini_set('display_errors',1);
histoire de voir s'il n'y a pas un petit message à lire

a+
jean-paul

Hors ligne

#7 12/11/2009 00:54:21

Fredo42
Membre
Inscription : 03/10/2009
Messages : 470
Site Web

Re : [hors zite+] fonction mail() chez 1&1

l'error reporting ne rapporte rien de significatif:

Notice: Undefined index: pnl2 in /homepages/x/htdocs/zite/zite.php on line 301
Notice: Undefined index: pnl8 in /homepages/x/htdocs/zite/zite.php on line 333
Notice: Undefined index: pnl3 in /homepages/x/htdocs/zite/zite.php on line 328
Notice: Undefined index: pnl6 in /homepages/x/htdocs/zite/zite.php on line 331
Notice: Undefined index: pnl5 in /homepages/x/htdocs/zite/zite.php on line 330
Notice: Undefined index: pre_main in /homepages/x/htdocs/zite/zite.php on line 430
Notice: Undefined index: post_main in /homepages/x/htdocs/zite/zite.php on line 432

il doit y avoir une particularité chez 1&1...
j'ai pris contact avec eux cet après-midi, j'ai eu une réponse à coté de la plaque (qui m'a quand même servi à configurer thunderbird...) donc maintenant j'attends la 2ème réponse...

pourtant dans la faq de 1&1:

Voici un script PHP permettant l’utilisation de la fonction mail() de PHP disponible sur les packs d’hébergements Linux.
Fichier 1: email.php

<?php
$recipient ="destinataire@site.fr";
mail ("$recipient", "$sujet", "$message", "From: $email");
?>

Il vous faut dans cette exemple, depuis le formulaire de contact faire suivre:
email = email du visiteur
sujet = motif de prise de contact
message = message de votre visiteur


Mieux vaut poser une question et passer pour un con, que se taire et le rester...

Hors ligne

#8 12/11/2009 03:02:37

davyk
Membre
Inscription : 09/09/2008
Messages : 819
Site Web

Re : [hors zite+] fonction mail() chez 1&1

le code que je t'ai donné, je l'utilise chez 1&1 pour une cliente ( http://berenice-saint-aignan.com/?page=contact ) de manière sensiblement différente essayes ça:

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

	// 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.<br>Merci de nous avoir contacté.";
	$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.";

	/*
		********************************************************************************************
		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";
			$objet = 'Message en provenance du site -'.$objet.''. "\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(''',"'",$message);
			$message = str_replace('’',"'",$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.' </p>'."\n";
			$err_formulaire = true;
		};
	}; // fin du if (!isset($_POST['envoi']))

	if (($err_formulaire) || (!isset($_POST['envoi'])))
	{
		// afficher le formulaire
		echo '<form id="mail" method="post" action="'.$form_action.'">'."\n";

		echo '			<label for="nom">Votre nom	:</label><br>'."\n";
		echo '			<input type="text" id="nom" name="nom" value="'.stripslashes($nom).'" tabindex="1" />'."\n";
		echo '		<br><br>'."\n";
		echo '		'."\n";
		echo '			<label for="email">Votre e-mail	:</label><br>'."\n";
		echo '			<input type="text" id="email" name="email" value="'.stripslashes($email).'" tabindex="2" />'."\n";
		echo '		<br><br>'."\n";
		echo '	'."\n";

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

		echo '	<div style="text-align:center;"><input type="submit" name="envoi" value="Envoyer votre message" /></div>'."\n";
		echo '</form>'."\n";
	};
?>

Dernière modification par davyk (12/11/2009 03:08:03)


Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows

Hors ligne

#9 12/11/2009 03:22:20

Fredo42
Membre
Inscription : 03/10/2009
Messages : 470
Site Web

Re : [hors zite+] fonction mail() chez 1&1

toujours pas....
"L'envoi du mail a échoué, veuillez réessayer SVP."


Mieux vaut poser une question et passer pour un con, que se taire et le rester...

Hors ligne

#10 12/11/2009 22:30:33

Fredo42
Membre
Inscription : 03/10/2009
Messages : 470
Site Web

Re : [hors zite+] fonction mail() chez 1&1

Pas de nouvelle du support aujourd'hui.... peut-être demain... snif...


Mieux vaut poser une question et passer pour un con, que se taire et le rester...

Hors ligne

#11 12/11/2009 23:45:55

davyk
Membre
Inscription : 09/09/2008
Messages : 819
Site Web

Re : [hors zite+] fonction mail() chez 1&1

bon dernier test pour toi:

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

    // 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.<br>Merci de nous avoir contacté.";
    $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.";

    /*
        ********************************************************************************************
        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";
            $objet = 'Message en provenance du site -'.$objet.''. "\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('\'',"\'",$message);
            $message = str_replace('’',"\'",$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.' </p>'."\n";
            $err_formulaire = true;
        };
    }; // fin du if (!isset($_POST['envoi']))

    if (($err_formulaire) || (!isset($_POST['envoi'])))
    {
        // afficher le formulaire
        echo '<form id="mail" method="post" action="'.$form_action.'">'."\n";

        echo '            <label for="nom">Votre nom    :</label><br>'."\n";
        echo '            <input type="text" id="nom" name="nom" value="'.stripslashes($nom).'" tabindex="1" />'."\n";
        echo '        <br><br>'."\n";
        echo '        '."\n";
        echo '            <label for="email">Votre e-mail    :</label><br>'."\n";
        echo '            <input type="text" id="email" name="email" value="'.stripslashes($email).'" tabindex="2" />'."\n";
        echo '        <br><br>'."\n";
        echo '    '."\n";

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

        echo '    <div style="text-align:center;"><input type="submit" name="envoi" value="Envoyer votre message" /></div>'."\n";
        echo '</form>'."\n";
    };
?>

ça marche ici: http://mms-web.fr/test/index.php?perma=1151951287
et ici http://mms-web.fr/lastbeta/index.php?perma=1151951287
c'est hébergé chez 1&1
rempli bien les champs CORRECTEMENT!
si ça marche pas c'est que ça vient de ton zite

++ vYk

Dernière modification par davyk (12/11/2009 23:50:24)


Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows

Hors ligne

#12 12/11/2009 23:49:28

Fredo42
Membre
Inscription : 03/10/2009
Messages : 470
Site Web

Re : [hors zite+] fonction mail() chez 1&1

edit le message, tu as laissé l'adresse mail


Mieux vaut poser une question et passer pour un con, que se taire et le rester...

Hors ligne

#13 12/11/2009 23:50:41

davyk
Membre
Inscription : 09/09/2008
Messages : 819
Site Web

Re : [hors zite+] fonction mail() chez 1&1

Fredo42 a écrit :

edit le message, tu as laissé l'adresse mail

merci wink


Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows

Hors ligne

#14 12/11/2009 23:51:44

Fredo42
Membre
Inscription : 03/10/2009
Messages : 470
Site Web

Re : [hors zite+] fonction mail() chez 1&1

Ca marche!!!!!!!!


Mieux vaut poser une question et passer pour un con, que se taire et le rester...

Hors ligne

#15 12/11/2009 23:53:51

Fredo42
Membre
Inscription : 03/10/2009
Messages : 470
Site Web

Re : [hors zite+] fonction mail() chez 1&1

bon va falloir que j'épluche le code pour l'adapter à mon site, merci davyk!


Mieux vaut poser une question et passer pour un con, que se taire et le rester...

Hors ligne

#16 12/11/2009 23:54:21

davyk
Membre
Inscription : 09/09/2008
Messages : 819
Site Web

Re : [hors zite+] fonction mail() chez 1&1

de rien mon fredo

et ouais! wink
c'était pas la faute à 1&1, j'aimerais te l'entendre dire.. wink

Dernière modification par davyk (12/11/2009 23:54:55)


Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows

Hors ligne

#17 12/11/2009 23:57:40

Fredo42
Membre
Inscription : 03/10/2009
Messages : 470
Site Web

Re : [hors zite+] fonction mail() chez 1&1

C'est pas la faute à 1&1
c'est la faute à Fredo42!

Mais je vais comprendre pourquoi!

Dernière modification par Fredo42 (12/11/2009 23:58:18)


Mieux vaut poser une question et passer pour un con, que se taire et le rester...

Hors ligne

#18 13/11/2009 00:04:43

davyk
Membre
Inscription : 09/09/2008
Messages : 819
Site Web

Re : [hors zite+] fonction mail() chez 1&1

merci pour eux wink
c'est peut-être pas ta faute mais celle du code, en tout cas pour celui que je t'ai donné, j'ai corrigé
          $message = str_replace(''',"'",$message);
          $message = str_replace('’',"'",$message);

par       $message = str_replace('\'',"\'",$message);
            $message = str_replace('’',"\'",$message);

++ vYk

Dernière modification par davyk (13/11/2009 00:05:38)


Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows

Hors ligne

#19 13/11/2009 00:07:37

Fredo42
Membre
Inscription : 03/10/2009
Messages : 470
Site Web

Re : [hors zite+] fonction mail() chez 1&1

dans les tests précédents j'avais vu que ça fourrait un peu ici alors j'avais supprimé la partie "Remplacement de certains caractères spéciaux"


Mieux vaut poser une question et passer pour un con, que se taire et le rester...

Hors ligne

#20 14/11/2009 01:45:29

Fredo42
Membre
Inscription : 03/10/2009
Messages : 470
Site Web

Re : [hors zite+] fonction mail() chez 1&1

J'y comprends rien!!!
Le dernier formulaire fonctionne, donc en m'inspirant de sa structure et sa hiérarchie, j'ai refait mon formulaire et ça marche pas!!!
Pourquoi refaire mon formulaire alors que celui de davyk fonctionne? Pour COMPRENDRE!!! et pouvoir adapter le module user_auto qui ne fonctionne pas chez 1&1...
Donc voici mon formulaire qui découle de celui de davyk, si quelqu'un voit un truc que j'ai pas vu...

<?php
$destinataire = 'admin@nomdedomaine1&1';
$sujet = $_POST['sujet'];
$email=$_POST['email'];
$email2=$_POST['email2'];
$message=$_POST['message'];
$headers = 'From: <'.$email.'>' . "\r\n";

$messerr='';
if(!filter_var($email, FILTER_VALIDATE_EMAIL)){
  $messerr=$messerr."Adresse mail considérée comme NON valide.".'<br>';
}
if ($email!=$email2) {
  $messerr=$messerr."Les 2 adresses mails ne sont pas identiques.".'<br>';
}
if ($sujet=='') {
  $messerr=$messerr."Merci de mettre un sujet.".'<br>';
}
if ($message=='') {
  $messerr=$messerr."Le but de cette page est d'envoyer un message!! Alors mettez-en un! Merci.";
}

if (isset($_POST['envoi']))
  {
  if ($messerr == '')
    {
    $message = html_entity_decode($message);
    $message = str_replace('\'',"\'",$message);
    $message = str_replace('’',"\'",$message);
    $message = str_replace('<br>','',$message);
    $message = str_replace('<br />','',$message);
    if (mail($destinataire, $sujet, $message, $headers))
      {
      echo "L'envoi du mail a enfin réussi!!! BRAVO."."\n";
      }
    else
      {
      echo "L'envoi du mail a échoué, veuillez réessayer SVP."."\n";
      }
    }
  else
    {
    echo '<h3><font color=red>'.$messerr.'</font></h3>';
    }
  }

if (($messerr) || (!isset($_POST['envoi'])))
  {
        // afficher le formulaire

echo '        <h1>Formulaire de contact</h1>'."\n";
echo '<th colspan="2">Tous les champs sont obligatoires.</th><br><br>'."\n";
echo '<form action="" method="post" >'."\n";
echo '<table>'."\n";
echo '  <tr><td class="info">Votre email : </td><td class="champ"><input name="email" type="text" size="66"></td></tr>'."\n";
echo '  <tr><td class="info">Confirmez votre email : </td><td class="champ"><input name="email2" type="text" size="66" value="et oui encore une fois..."></td></tr>'."\n";
echo '  <tr><td class="info">Sujet : </td><td class="champ"><input name="sujet" type="text" size="66"></td></tr>'."\n";
echo '  <tr>'."\n";
echo '    <td class="contenu">Votre message</td>'."\n";
echo '  <td class="contenant"><textarea name="message" cols="50" rows="20"></textarea></td></tr>'."\n";
echo '  <tr><th colspan="1">'."\n";
echo '    <td class="lesboutons"><input type="reset" value="Annuler">'."\n";
echo '  <input type="submit" name="envoi" value="Envoyer"></td></th></tr>'."\n";
echo '</table></form>'."\n";
  }
?>

Merci à vous
Bonne nuit


Mieux vaut poser une question et passer pour un con, que se taire et le rester...

Hors ligne

#21 14/11/2009 16:53:32

davyk
Membre
Inscription : 09/09/2008
Messages : 819
Site Web

Re : [hors zite+] fonction mail() chez 1&1

salut,
essayes de remplacer
if ($email!=$email2)
par if ($email !==$email2)

++ vYk


Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows

Hors ligne

#22 14/11/2009 20:47:01

Fredo42
Membre
Inscription : 03/10/2009
Messages : 470
Site Web

Re : [hors zite+] fonction mail() chez 1&1

Bon, ça marche!
je suis un vrai boulet!! j'avais mis 2 mails dans $destinataire séparé par un ; et non une , !!!!!!
je vais maintenant regarder pourquoi le user_auto ne fonctionne pas...


Mieux vaut poser une question et passer pour un con, que se taire et le rester...

Hors ligne

#23 14/11/2009 21:07:17

Fredo42
Membre
Inscription : 03/10/2009
Messages : 470
Site Web

Re : [hors zite+] fonction mail() chez 1&1

bon ben le module fonctionne....
j'ai juste à rajouter les headers pour ne pas avoir en expéditeur "cgi-mailer@kundenserver.de"


Mieux vaut poser une question et passer pour un con, que se taire et le rester...

Hors ligne

#24 14/11/2009 21:50:05

Fredo42
Membre
Inscription : 03/10/2009
Messages : 470
Site Web

Re : [hors zite+] fonction mail() chez 1&1

Pour rajouter l'expéditeur du message il suffit dans user_auto.php de rajouter

'From: <'.$this->getOption('mailadmin').'>'

dans la fonction mail() aux lignes 54, 60 et 100.
La ligne 54 devient par exemple:

$errsend |= !mail($mailTo, $mailSubject, $mailMessage, 'From: <'.$this->getOption('mailadmin').'>');

Mieux vaut poser une question et passer pour un con, que se taire et le rester...

Hors ligne

#25 14/11/2009 22:01:08

davyk
Membre
Inscription : 09/09/2008
Messages : 819
Site Web

Re : [hors zite+] fonction mail() chez 1&1

beau boulot wink


Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows

Hors ligne

Pied de page des forums