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 :

Soucis envoi mail avec pièce jointe


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 222
    Points : 121
    Points
    121
    Par défaut Soucis envoi mail avec pièce jointe
    Bonjour,
    Si je mets le message html je reçois un mail avec en pièce jointe mon message version html et si j'envoie mon message version texte je récupère bien une pièce jointe mais encodé avec lettre et chiffre donc pas très parlant pour le personne qui reçois le mail.
    Je vous remets tous 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
    $uploaddir = './img/';
    $uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
    if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
    echo "Le fichier est valide, et a été téléchargé avec succès. Voici plus d'informations :\n";
    } else {
    echo "Attaque potentielle par téléchargement de fichiers. Voici plus d'informations :\n";
    print_r($_FILES);
    }
    //----------------------------------------------- 
    //DECLARE LES VARIABLES 
    //----------------------------------------------- 
     
    $destinataire='mail_destinataire'; 
    $message_texte="Bonjour,\nVoici un message au format texte :\n\n
    Nom : ".$_POST['nom']." ".$_POST['prenom']."\nE-mail : ".$_POST['mail']."\nDemande : \n".$_POST['msg']; 
    $email_reply=$email_expediteur=$_POST['mail'];
     
    $message_html="Bonjour,<br>Voici un message au format texte :<br><br>
    Nom : ".$_POST['nom']." ".$_POST['prenom']."<br>E-mail : ".$_POST['mail']."<br>Demande : <br>".$_POST['msg']; 
    $email_reply=$email_expediteur=$_POST['mail'];
     
    $sujet="Formulaire contact site web";
     
    //----------------------------------------------- 
    //GENERE LA FRONTIERE DU MAIL ENTRE TEXTE ET HTML 
    //----------------------------------------------- 
     
    $frontiere = '-----=' . md5(uniqid(mt_rand())); 
     
    //----------------------------------------------- 
    //HEADERS DU MAIL 
    //----------------------------------------------- 
     
    $headers = 'From: "Nom" <'.$email_expediteur.'>'."\n"; 
    $headers .= 'Return-Path: <'.$email_reply.'>'."\n"; 
    $headers .= 'MIME-Version: 1.0'."\n"; 
    $headers .= 'Content-Type: multipart/mixed; boundary="'.$frontiere.'"'; 
     
    //----------------------------------------------- 
    //MESSAGE TEXTE 
    //----------------------------------------------- 
    $message = 'This is a multi-part message in MIME format.'."\n\n"; 
     
    $message .= '--'.$frontiere."\n"; 
    $message .= 'Content-Type: text/plain; charset="iso-8859-1"'."\n"; 
    $message .= 'Content-Transfer-Encoding: 8bit'."\n\n"; 
    $message .= $message_texte."\n\n"; 
     
    //----------------------------------------------- 
    //PIECE JOINTE 
    //----------------------------------------------- 
     
    $message .= 'Content-Type: image/jpeg; name="'.$uploadfile.'"'."\n"; 
    $message .= 'Content-Transfer-Encoding: base64'."\n"; 
    $message .= 'Content-Disposition:attachement; filename="'.$uploadfile.'"'."\n\n"; 
     
    $message .= chunk_split(base64_encode(file_get_contents($uploadfile)))."\n"; 
     
    if(mail($destinataire,$sujet,$message,$headers)) 
    { 
     echo 'Le mail a été envoyé'; 
    } 
    else 
    { 
     echo 'Le mail n\'a pu être envoyé'; 
    }
    Donc si quelqu'un voit un truc je suis preneur.
    Merci d'avance
    Faites votre veille sur Les métiers du web.

  2. #2
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 402
    Points : 5 758
    Points
    5 758
    Billets dans le blog
    1
    Par défaut
    Bonsoir,

    je n'ai pas regardé en détail ton code (je ne suis pas un spécialiste), cela dit, j'avais développé aussi un envoi de mail avec pièce attachée (et visiblement, nous avons pris la même source d'inspiration) ; je te mets mon code, si ça peut t'aider (il marche bien, si les pièces jointes sont des images) :
    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
    $chemin_destination = 'upload/';
    	move_uploaded_file($_FILES['file']['tmp_name'], $chemin_destination.$_FILES['file']['name']);
    	$adr_file=$chemin_destination.$_FILES['file']['name'];
     
    	//-----------------------------------------------
    	//DECLARE LES VARIABLES
    	//-----------------------------------------------
    	$exp=$mail;
    	$email_expediteur=$exp;
    	$email_reply=$exp;
    	$destinataire=$mail;
     
    	$frontiere = '-----=' . md5(uniqid(mt_rand()));
     
    	//-----------------------------------------------
    	//HEADERS DU MAIL
    	//-----------------------------------------------
     
    	$headers = 'From: "Nom" <'.$email_expediteur.'>'."\n";
    	$headers.= 'Return-Path: <'.$email_reply.'>'."\n";
    	$headers.= 'MIME-Version: 1.0'."\n";
    	$headers.= 'Content-Type: multipart/mixed; boundary="'.$frontiere."\"\n\n";
     
    	//-----------------------------------------------
    	//MESSAGE
    	//-----------------------------------------------
     
    	$message ='This is a multi-part/mixed message in MIME format.'."\n";
    	$message.='--'.$frontiere."\n";
    	$message.='Content-Type: text/html; charset="ISO-8859-1"'."\n";
    	$message.='Content-Transfer-Encoding: base64'."\n\n";
     
    	$message.=chunk_split(base64_encode(nl2br($msg)))."\n";
     
    	//-----------------------------------------------
    	//PIECE JOINTE
    	//-----------------------------------------------
     
    	$base=basename($adr_file);
     
    	$message.='--'.$frontiere."\n";
    	$message.= 'Content-Type: image/jpeg; name='.$base."\n";
    	$message.= 'Content-Transfer-Encoding: base64'."\n";
    	$message.= 'Content-Disposition:attachement; filename='.$base."\n\n";
    	$message.= chunk_split(base64_encode(file_get_contents($adr_file)))."\n";
    	$message.='--'.$frontiere.'--'."\n";
     
    	if(@mail($destinataire,$sujet,$message,$headers)){
    		echo '---OK---'."\n";
    }
     
     
    	 else{
    		echo '---pas OK---'."\n";
    	}
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 222
    Points : 121
    Points
    121
    Par défaut
    En fait c'était tout c... j'avais oublié la frontière.
    Faites votre veille sur Les métiers du web.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Envoie Mail avec pièce jointe
    Par Sh@m@n dans le forum SAP
    Réponses: 11
    Dernier message: 05/04/2012, 14h22
  2. Envoi mail avec pièce jointe sans confirmation
    Par grrimag dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 25/04/2008, 14h23
  3. [VBA-E]envoi mail avec pièce jointe
    Par magictom42 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 19/03/2007, 11h33
  4. Envoie mail avec pièce jointe
    Par Juniora dans le forum Access
    Réponses: 3
    Dernier message: 03/04/2006, 14h24
  5. [VB]Bp envoie mail avec piéce jointe
    Par jm1213 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 17/02/2006, 20h55

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