IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Fonction mail en PHP et le return path obligatoire pour oleane quel syntaxe?


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 73
    Par défaut Fonction mail en PHP et le return path obligatoire pour oleane quel syntaxe?
    Bonjour,

    Mon script PHP en local fonctionne mais pas chez l'hébergeur ?

    Voici le script exemple que me propose orange en me disant que le return path est obligatoire sur le serveur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    <?php
    $headers ='From: "Essai OBH"<test@oleane-hebergement.com>'."\n";
    $headers .='Return-Path: test@oleane-hebergement.com'."\n";
    $headers .='Reply-To: test@oleane-hebergement.com'."\n";
    $headers .='Content-Type: text/plain; charset="iso-8859-1"'."\n";
    $headers .='Content-Transfer-Encoding: 8bit';
     
    if(mail('test@oleane-hebergement.com', 'test', 'message avec
    enveloppe complete', $headers))
    {
    echo 'Le message a bien été envoyé';
    }
    else
    {
    echo 'Le message n\'a pu être envoyé';
    }
    ?>

    Je reprends alors leur code pour adapter le mien à mon formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
     
    <?php
    /* Récupération des valeurs des champs du formulaire */
        $Nom = $_POST['Nom'];
        $Prenom = $_POST['Prenom']; 
        $Email = $_POST['Email'];
        $Telephone = $_POST['Telephone']; 
        $Objet = $_POST['Objet']; 
        $Message = $_POST['Message'];
     
    /* Destinataire (votre adresse e-mail) */
    $to = "moi@moi.net";
     
    /* Construction du message */
    $msg  = "Bonjour,"."\r\n\r\n";
    $msg .= "Ce mail a été envoyé depuis moi.com par ".$Nom." ".$Prenom."\r\n\r\n";
    $msg .= "L'Email de la personne est : ".$Email. "\r\n";
    $msg .= "Le numéro de Téléphone de la personne est : ".$Telephone. "\r\n";
    $msg .= "L'Objet du message est :".$Objet. "\r\n";
    $msg .= "Voici le message qui vous est adressé :"."\r\n";
    $msg .= "***************************"."\r\n";
    $msg .= $Message."\r\n";
    $msg .= "***************************"."\r\n";
     
    /* En-têtes de l'e-mail */
     
    $headers = "From: ".$Nom." <".$Email.">"."\n";
    $headers .='Return-Path: ".$Email."\n"; 
    $headers .='Reply-To:".$Email."\n"; 
    $headers .='Content-Type: text/plain; charset="iso-8859-1'."\n"; 
    $headers .='Content-Transfer-Encoding: 8bit'; 
    
    /* Envoi de l'e-mail */
    mail($to, $Objet, $msg, $headers);
    Mais voilà => ça marche pas !
    J'ai fais une erreur de syntaxe??

    Je n'ai pas de message d'erreur, tout se passe bien comme si l'email était bien parti.

    Cependant je ne reçois rien ; aucun email ;

    Je sais que je n'ai pas mis de message d'erreur pouvant soulever le non envoi du mail ; mais je voulais réduire le script à sa plus simple expression pour comprendre d'où vient l'erreur mais je ne voit pas!!

    D'autant plus qu'en local, avec le même script tout fonctionne très bien, à la différence qu'avec wamp, j'initialise mon php.ini et j'ajoute dans mon script php la fonction ini_set pour forcer le smtp de mon opérateur.

    en un mot HELP

    Merci beaucoup d'avance

  2. #2
    Membre Expert
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Par défaut
    Citation Envoyé par djamess
    J'ai fais une erreur de syntaxe ?
    Oui, remplace les lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $headers .='Return-Path: ".$Email."\n"; 
    $headers .='Reply-To:".$Email."\n";
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $headers .='Return-Path: '.$Email."\n"; 
    $headers .='Reply-To: '.$Email."\n";
    Edit : Et aussi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $headers .='Content-Type: text/plain; charset="iso-8859-1"'."\n";

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 73
    Par défaut
    Que dire de plus!!

    MERCIII

    Fin de journée plus les yeux en face des trous!!

    LOL

    Mais le problème c'est que c'est pas finis!!

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 73
    Par défaut Pièce jointe n'arrive pas non plus?
    J'ai crié victoire trop vite
    :-(
    dslé

    Alors dans le même genre, j'ai effectué un formulaire pour charger des pièce jointe en local ça marche et pas chez l'herbergeur!

    Mais la je pense avoir fait attention à la syntaxe !

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
     
    <?php
     
    /*----------------------------------------------------------------*/
    /* Envoie du mail avec les pièces jointes qui ont été uploadées */
    /*----------------------------------------------------------------*/
     
    /* Récupération des valeurs des champs du formulaire */
     
        	$Email = $_POST['Email']; 
        	$Objet = $_POST['Objet'];
    	$LM = $_POST['LM']; 
    	$CV = $_POST['CV'];    
     
     
    // To
    $to = "soua@laposte.net";
     
    /* En-têtes de l'e-mail */
    $headers = "From: "." <".$Email.">"."\r\n\r\n";
     
    // clé aléatoire de limite
    $boundary = md5(uniqid(microtime(), TRUE));
     
    // Headers
    $headers = "From: "." <".$Email.">"."\r\n\r\n";
    $headers .='Return-Path: '.$Email."\n"; 
    $headers .='Reply-To: '.$Email."\n";
    $headers .= 'Mime-Version: 1.0'."\r\n";
    $headers .= 'Content-Type: multipart/mixed;boundary='.$boundary."\r\n";
    $headers .= "\r\n";
     
    /* Construction du message */
    $msg  = "Bonjour, "."\r\n\r\n";
    $msg .= "Ce mail a été envoyé depuis moi.com "."\r\n\r\n";
    $msg .= "L Email de la personne est : ".$Email. "\r\n";
    $msg .= "L Objet du message est  :".$Objet. "\r\n";
    $msg .= "Un message avec une pièce jointe"."\r\n"; 
     
    // Message
    $msg = 'This is a multipart/mixed message.'."\r\n\r\n";
     
    // Texte
    $msg .= '--'.$boundary."\r\n";
    $msg .= 'Content-type:text/plain;charset=utf-8'."\r\n";
    $msg .= 'Content-transfer-encoding:8bit'."\r\n";
     
     
    // Pièce jointe LM
    $file_name = $LM;
    if (file_exists($file_name))
    {
    	$file_type = filetype($file_name);
    	$file_size = filesize($file_name);
     
    	$handle = fopen($file_name, 'r') or die('File '.$file_name.'can t be open');
    	$content = fread($handle, $file_size);
    	$content = chunk_split(base64_encode($content));
    	$f = fclose($handle);
     
    	$msg .= '--'.$boundary."\r\n";
    	$msg .= 'Content-type:'.$file_type.';name='.$file_name."\r\n";
    	$msg .= 'Content-transfer-encoding:base64'."\r\n";
    	$msg .= $content."\r\n";
    }
     
    // Pièce jointe CV
    $file_name = $CV;
    if (file_exists($file_name))
    {
    	$file_type = filetype($file_name);
    	$file_size = filesize($file_name);
     
    	$handle = fopen($file_name, 'r') or die('File '.$file_name.'can t be open');
    	$content = fread($handle, $file_size);
    	$content = chunk_split(base64_encode($content));
    	$f = fclose($handle);
     
    	$msg .= '--'.$boundary."\r\n";
    	$msg .= 'Content-type:'.$file_type.';name='.$file_name."\r\n";
    	$msg .= 'Content-transfer-encoding:base64'."\r\n";
    	$msg .= $content."\r\n";
    }
     
    // Fin
    $msg .= '--'.$boundary."\r\n";
     
    $Objet2 = "Poste demandé par moi.COM: ".$Objet."\r\n";
     
    // Function mail()
    mail($to, $Objet2, $msg, $headers);
    ?>
    Je vois pas pourquoi en local ça marche et pas chez mon hebergeur?

    Merci d'avance pour votre aide

  5. #5
    Membre Expert
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Par défaut
    $msg doit bien commençer avec cette ligne.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $msg = 'This is a multipart/mixed message.'."\r\n\r\n";
    Mais dans ton code elle n'est pas à sa place. Essaie donc ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    /* Construction du message */
    $msg  = 'This is a multipart/mixed message.'."\r\n\r\n";
    $msg .= "Bonjour, "."\r\n\r\n";
    $msg .= "Ce mail a été envoyé depuis moi.com "."\r\n\r\n";
    $msg .= "L Email de la personne est : ".$Email. "\r\n";
    $msg .= "L Objet du message est  :".$Objet. "\r\n";
    $msg .= "Un message avec une pièce jointe"."\r\n";
    Et surtout, il faut ajouter les tirets après le $boundary pour finaliser le tout.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // Fin
    $msg .= '--'.$boundary."--\r\n";

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 73
    Par défaut Pas de retour d'erreurs mais le mail avec pièce jointe n'arrive pas
    Re Eric2a

    J'ai suivi tes conseils et corrigé mais toujours la même chose pas de réception de mail et pas d'erreur en retour...

    Je ne vois pas quoi faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
     
    <?php
     
    /*----------------------------------------------------------------*/
    /* Envoie du mail avec les pièces jointes qui ont été uploadées */
    /*----------------------------------------------------------------*/
     
    /* Récupération des valeurs des champs du formulaire */
     
        	$Email = $_POST['Email']; 
        	$Objet = $_POST['Objet'];
    	$LM = $_POST['LM']; 
    	$CV = $_POST['CV'];    
     
     
    // To
    $to = "soua@laposte.net";
     
    /* En-têtes de l'e-mail */
    $headers = "From: "." <".$Email.">"."\r\n\r\n";
     
    // clé aléatoire de limite
    $boundary = md5(uniqid(microtime(), TRUE));
     
    // Headers
    $headers = "From: "." <".$Email.">"."\r\n\r\n";
    $headers .='Return-Path: '.$Email."\n"; 
    $headers .='Reply-To: '.$Email."\n";
    $headers .= 'Mime-Version: 1.0'."\r\n";
    $headers .= 'Content-Type: multipart/mixed;boundary='.$boundary."\r\n";
    $headers .= "\r\n";
     
    /* Construction du message */
    $msg  = 'This is a multipart/mixed message.'."\r\n\r\n";
    $msg .= "Bonjour, "."\r\n\r\n";
    $msg .= "Ce mail a été envoyé depuis moi.com "."\r\n\r\n";
    $msg .= "L Email de la personne est : ".$Email. "\r\n";
    $msg .= "L Objet du message est  :".$Objet. "\r\n";
    $msg .= "Un message avec une pièce jointe"."\r\n";
     
    // Texte
    $msg .= '--'.$boundary."\r\n";
    $msg .= 'Content-type:text/plain;charset=utf-8'."\r\n";
    $msg .= 'Content-transfer-encoding:8bit'."\r\n";
     
     
    // Pièce jointe LM
    $file_name = $LM;
    if (file_exists($file_name))
    {
    	$file_type = filetype($file_name);
    	$file_size = filesize($file_name);
     
    	$handle = fopen($file_name, 'r') or die('File '.$file_name.'can t be open');
    	$content = fread($handle, $file_size);
    	$content = chunk_split(base64_encode($content));
    	$f = fclose($handle);
     
    	$msg .= '--'.$boundary."\r\n";
    	$msg .= 'Content-type:'.$file_type.';name='.$file_name."\r\n";
    	$msg .= 'Content-transfer-encoding:base64'."\r\n";
    	$msg .= $content."\r\n";
    }
     
    // Pièce jointe CV
    $file_name = $CV;
    if (file_exists($file_name))
    {
    	$file_type = filetype($file_name);
    	$file_size = filesize($file_name);
     
    	$handle = fopen($file_name, 'r') or die('File '.$file_name.'can t be open');
    	$content = fread($handle, $file_size);
    	$content = chunk_split(base64_encode($content));
    	$f = fclose($handle);
     
    	$msg .= '--'.$boundary."\r\n";
    	$msg .= 'Content-type:'.$file_type.';name='.$file_name."\r\n";
    	$msg .= 'Content-transfer-encoding:base64'."\r\n";
    	$msg .= $content."\r\n";
    }
     
    // Fin
    $msg .= '--'.$boundary."--\r\n";
     
    $Objet2 = "Poste demandé par SOUASOUA.COM: ".$Objet."\r\n";
     
    // Function mail()
    mail($to, $Objet2, $msg, $headers);
    ?>
    Je ne comprends pas pourquoi ce script ne fonctionne pas??
    Je devrais recevoir mon email avec mes deux pièces jointes...

    Merci de votre aide

Discussions similaires

  1. Fonction mail en php et Serveur de mail
    Par Rudya dans le forum Serveurs (Apache, IIS,...)
    Réponses: 1
    Dernier message: 26/04/2007, 12h11
  2. [Mail] Fonction mail en PHP
    Par rte304 dans le forum Langage
    Réponses: 1
    Dernier message: 11/04/2007, 22h02
  3. [Mail] probleme avec la fonction mail de php
    Par fdavid dans le forum Langage
    Réponses: 3
    Dernier message: 15/06/2006, 15h48
  4. [Mail] Fonction mail () de php
    Par goma771 dans le forum Langage
    Réponses: 5
    Dernier message: 20/02/2006, 21h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo