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 :

Envoi de mail


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Avril 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Avril 2008
    Messages : 71
    Par défaut Envoi de mail
    Bonjour, je suis en train de travailler sur l'envoie de mail avec piece jointe. J'ai utilisé les tutoriels de ce site pour m'aider mais je rencontre des difficultés.

    1. Lorsque le mail arrive au destinataire, les boundaries et les contents types s'affiche alors que je ne veux afficher que le corps du message

    2. La piece jointe que j'attache n'est pas restitué en tant que piece jointe mais en code.

    voila le code du php :
    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
    $headers  = "From: {$site_name}<equipe@abuse-desk.orange-business.com>\r\n"."X-Mailer: AABOX through PHP\r\n"."Disposition-Notification-To: 'Notification AABOX' <notification@aabox.clb.oleane.net>";
    $headers .= 'Mime-Version: 1.0'.'\r\n';
    $headers .= 'Content-Type: multipart/mixed;boundary'.$boundary.'\r\n';
    $headers .= '\r\n';
    $message = 'This is a multipart/mixed message.'.'\r\n\r\n';
    $message .= '--'.$boundary.'\r\n';
    $message .= 'Content-type:text/plain;charset=utf-8'.'\r\n';
    $message .= 'Content-transfer-encoding:8bit'.'\r\n';
    $adr_email = $_POST['email'];
    $message .= $_POST['message'];
    //$message = stripslashes($message);
    //$message = str_replace("","",$message);
    $subject = $_POST['subject'];
    $tkt_oceane = $_POST['oceane'];
    if(isset($_FILES['file1']) AND $_FILES['file1']['error'] == 0){
    	// Testons si le fichier n'est pas trop gros
    	if($_FILES['file1']['size'] <= 1000000){
    	        // Testons si l'extension est autorisée
    	        $infosfichier = pathinfo($_FILES['file1']['name']);
    	        $extension_upload = $infosfichier['extension'];
    	        $extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png');
                    if (in_array($extension_upload, $extensions_autorisees)){
    	                // On peut valider le fichier et le stocker définitivement
                            //move_uploaded_file($_FILES['file1']['tmp_name'], '../upload/' . basename($_FILES['file1']['name']));
                            $file_name = $_FILES['file1']['name'];
                            $file_type = $extension_upload; 
    			$file_size = $_FILES['file1']['size'];
    			$fichier = file_get_contents($_FILES['file1']['tmp_name']) or die('File '.$file_name.'can t be open');
    			$fichier = chunk_split(base64_encode($fichier));
    			$message .= '--'.$boundary.'\r\n';
    			$message .= 'Content-type:'.$file_type.';name='.$file_name.'\r\n';
    			$message .= 'Content-transfer-encoding:base64'.'\r\n';
    			$message .= 'Content-Disposition: attachment; filename=' .$_FILES['file1']['name'].'\r\n\n';
    			$message .= $fichier;
                            //$message .= '--'.$boundary.'\r\n';
    	        }
    	        else{
    	               	echo "mauvaise extension";
    	        }
    	}
    	else{
    	        echo "fichier trop gros";
    	}
    }
    else{
    	echo "pas de fichier";
    }
    echo "
    	<table align='center'>
    		<tr><td align='center'><b>Message envoyé !</b></td></tr>	
    	</table>";
    et voila le résultat dans le mail :
    This is a multipart/mixed message.rnrn--b31ddcda92734d129631746fdb3ef58drnContent-type:text/plain;charset=utf-8rnContent-transfer-encoding:8bitrnMadame, Monsieur, etc...


    --b31ddcda92734d129631746fdb3ef58drnContent-type:jpg;name=Aabox.jpgrnContent-transfer-encoding:base64rnContent-Disposition: attachment; filename=Aabox.jpgrnn/9j/4AAQSkZJRgABAQEBLAEsAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a
    HBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIy
    MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCABMAQsDASIA
    AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA
    AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3
    ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm
    p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA
    AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx
    BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK
    je pense avoir un probleme avec le headeret le corps de texte mais je n'arrive pas a trouver. Merci pour votre aide par avance.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 51
    Par défaut
    Salut,

    Les \r\n ne sont pas interprétés dans des simples quotes ( '\r\n' )

    Tu dois utiliser "\r\n" avec des doubles quotes.

  3. #3
    Membre confirmé
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Avril 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Avril 2008
    Messages : 71
    Par défaut envoi de mail
    J'ai corrigé mon code. C'est j'ai bien une pièce jointe mais elle est au format zip avec le nom "noname". De plus j'ai plus de corps de texte.
    Donc la je sais pas d'ou ça vient.

    Voila le 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
    // clé aléatoire de limite
    $boundary = md5(uniqid(microtime(), TRUE));
    $headers  = "From:moi";
    $headers .= 'Mime-Version: 1.0'."\r\n";
    $headers .= 'Content-Type: multipart/mixed;boundary '.$boundary."\r\n";
    $headers .= "\r\n";
    $message = '--'.$boundary."\r\n";
    $adr_email = $_POST['email'];
    $message .= $_POST['message'];
    //$message = stripslashes($message);
    //$message = str_replace("","",$message);
    $subject = $_POST['subject'];
    $tkt_oceane = $_POST['oceane'];
    if(isset($_FILES['file1']) AND $_FILES['file1']['error'] == 0){
    	// Testons si le fichier n'est pas trop gros
    	if($_FILES['file1']['size'] <= 1000000){
    	        // Testons si l'extension est autorisée
    	        $infosfichier = pathinfo($_FILES['file1']['name']);
    	        $extension_upload = $infosfichier['extension'];
    	        $extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png');
    	        if (in_array($extension_upload, $extensions_autorisees)){
    	                // On peut valider le fichier et le stocker définitivement
                            //move_uploaded_file($_FILES['file1']['tmp_name'], '../upload/' . basename($_FILES['file1']['name']));
                            $file_name = $_FILES['file1']['name'];
                            $file_type = $extension_upload; 
    			$file_size = $_FILES['file1']['size'];
    			$fichier = file_get_contents($_FILES['file1']['tmp_name']) or die('File '.$file_name.'can t be open');
    			$fichier = chunk_split(base64_encode($fichier));
    			$message .= '--'.$boundary."\r\n";
    			$message .= $fichier;
                            $message .= '--'.$boundary."\r\n";
    	        }
    	        else{
    	                echo "mauvaise extension";
    	        }
    	}
    	else{
    	        echo "fichier trop gros";
    	}
    }
    else{
    	echo "pas de fichier";
    }

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 51
    Par défaut
    Il te manque un saut de ligne après ton header From:moi

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 83
    Par défaut changer de code
    L'écriture d'en-tête est rébarbative et a priori seulement didactique pour les développeurs PHP, si c'est pour envoyer des mails en vrai dans une vrai application utile, passe par une bibliothèque de haut niveau d'envoie de mail, ca sera beaucoup plus simple pour toi.

    Xavier

  6. #6
    Membre actif
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2006
    Messages : 36
    Par défaut
    Pour rebondir sur ce qu'à dit Vexa :
    Si tu es chez Orange, tu utilises sûrement l'OFT, qui inclus le Zend Framework.
    Utilises donc http://framework.zend.com/manual/1.12/fr/zend.mail.html

Discussions similaires

  1. Envoi de mail au format html
    Par Mephyston dans le forum C++Builder
    Réponses: 2
    Dernier message: 22/01/2004, 12h29
  2. Envoi de mail au format Rich-Text
    Par LineLe dans le forum ASP
    Réponses: 4
    Dernier message: 29/10/2003, 16h27
  3. envoi de mail avec attachement de fichier
    Par GMI3 dans le forum Modules
    Réponses: 2
    Dernier message: 24/09/2003, 11h22
  4. Outlook ne se ferme pas après un envoi de mail
    Par Joke dans le forum VBA Access
    Réponses: 2
    Dernier message: 07/06/2003, 17h32
  5. envoi de mail, protocol SMTP langage C
    Par Heimdall dans le forum Développement
    Réponses: 2
    Dernier message: 23/05/2003, 11h22

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