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 :

[Mail] Envoyer un CV via e-mail


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Inactif   Avatar de Deallyra
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    1 997
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Par défaut [Mail] Envoyer un CV via e-mail
    Bonjour à tous,

    Voilà, je ne sais pas comment m'y prendre pour permettre l'envoi d'un CV via mail...
    Je sais comment uploader un fichier sur le serveur via un formulaire avec input type file mais je ne sais pas comment envoyer ce fichier par mail.

    Pourriez vous m'aider? J'ai trouvé des scripts se ressemblant beaucoup mais je ne les comprends pas...
    Ca m'embête de copier coller un script que je n'arrive pas à comprendre. De plus, je dois être apte d'expliquer le code lors de ma soutenance...

    Code php : 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
     
    //----------------------------------
    // Construction de l'entête
    //----------------------------------
    $boundary = "-----=".md5(uniqid(rand()));
    $header = "MIME-Version: 1.0\r\n";
    "multipart/mixed"
    $header .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n";
    $header .= "\r\n";
     
    //--------------------------------------------------
    // Construction du message proprement dit
    //--------------------------------------------------
     
    $msg = "Je vous informe que ceci est un message au format MIME 1.0 multipart/mixed.\r\n";
     
    //---------------------------------
    // 1ère partie du message
    // Le texte
    //---------------------------------
    // Chaque partie du message est séparé par une frontière
    $msg .= "--$boundary\r\n";
     
    // Et pour chaque partie on en indique le type
    $msg .= "Content-Type: text/plain; charset=\"iso-8859-1\"\r\n";
    // Et comment il sera codé
    $msg .= "Content-Transfer-Encoding:8bit\r\n";
    // Il est indispensable d'introduire une ligne vide entre l'entête et le texte
    $msg .= "\r\n";
    // Enfin, on peut écrire le texte de la 1ère partie
    $msg .= "Ceci est un mail avec un fichier joint\r\n";
    $msg .= "\r\n";
     
    //---------------------------------
    // 2nde partie du message
    // Le fichier
    //---------------------------------
    // Tout d'abord lire le contenu du fichier
    //$file = "nom_du_fichier.jpg";
    $file = "piece.pdf";
    $attachment = file_get_contents($file);
    $attachment = chunk_split(base64_encode($attachment));
     
    // Ne pas oublier que chaque partie du message est séparé par une frontière
    $msg .= "--$boundary\r\n";
    $msg .= "Content-Type: application/pdf; name=\"$file\"\r\n";
    $msg .= "Content-Transfer-Encoding: base64\r\n";
    $msg .= "Content-Disposition: attachment; filename=\"$file\"\r\n";
    $msg .= "\r\n";
    $msg .= $attachment . "\r\n";
    $msg .= "\r\n\r\n";
     
    // voilà, on indique la fin par une nouvelle frontière
    $msg .= "--$boundary--\r\n";
     
    $destinataire = "black_zx@hotmail.com";
    $expediteur   = "black_zx@hotmail.com";
    $reponse      = $expediteur;
    echo "Ce script envoie un mail avec fichier attaché à $expediteur";
    mail($destinataire, "test avec fichier attaché", $msg,
         "Reply-to: $reponse\r\nFrom: $expediteur\r\n".$header);

    Pour ce qui est de récuperer le fichier via submit, j'ai pensé à ce 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
     
    	if( isset($_POST['upload']) ) // si formulaire soumis
    	{
    		$content_dir = '../CV/' /*Dossier où sera déplacé le fichier*/
    		;
    	    $tmp_file = $_FILES['fichier']['tmp_name'];
    	    if( !is_uploaded_file($tmp_file) )
    	    {
    	        exit("Le fichier est introuvable") /*Assure que le code situé en dessous ne sera pas exécuté*/
    			;
    	    }
    		;
    	    $type_file = $_FILES['fichier']['type'] /*On vérifie maintenant l'extension*/
    		;
    	    if( !strstr($type_file, '.doc'))
    	    {
    	        exit("Le fichier n'est pas un fichier Word!") /*Assure que le code situé en dessous ne sera pas exécuté*/
    			;
    	    }
    	    $name_file = $_FILES['fichier']['name'] /*On copie le fichier dans le dossier de destination*/
    	    ;
    	    if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
    	    {
    	        exit("Impossible de copier le fichier dans $content_dir");
    	    }
    		;
    		echo'
    			Le fichier a bien été uploadé'
    		;
    Si quelqu'un a une réponse, je serais heureuse de l'entendre
    *Si la réponse vous convient, n'oubliez pas le tag
    *Exprimez vous dans un français correct; on prend le temps de vous lire, prenez le temps de bien écrire.
    *Et comment on interprète votre code? N'oubliez pas la balise!

    *Pour une mise en page simple avec des divs.
    *Pour faire des formulaires xHTML CSS.

  2. #2
    Inactif   Avatar de Deallyra
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    1 997
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Par défaut


    J'ai trouvé un script de SuBzéro qui est assez court...
    je devrais trouver une explication plus facilement
    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
     
    <?php
    Require_once('class.phpmailer.php');
    set_time_limit(0);
     
    if(isset($_POST['destinataire'])){
     
      $mail = new PHPmailer();
      $mail->IsHTML();
      $mail->From='expediteur';
      $mail->AddAddress($_POST['destinataire']);
      $mail->AddReplyTo('expediteur');	
      // Sujet et texte du mail facultatifs
      $mail->Subject=@$_POST['subject'];
      $mail->Body=htmlentities(@$_POST['message']);
      // Pièce jointe facultative
      if(is_uploaded_file($_FILES['attach']['tmp_name']))
        $mail->AddAttachment($_FILES['attach']['tmp_name']);
      if(!$mail->Send())
        echo $mail->ErrorInfo; else
        echo 'Mail envoyé avec succès';
      unset($mail);  
    }
    ?>
    par contre, il faut télécharger une classe
    je voulais savoir à quoi ce terme correspondait...
    *Si la réponse vous convient, n'oubliez pas le tag
    *Exprimez vous dans un français correct; on prend le temps de vous lire, prenez le temps de bien écrire.
    *Et comment on interprète votre code? N'oubliez pas la balise!

    *Pour une mise en page simple avec des divs.
    *Pour faire des formulaires xHTML CSS.

  3. #3
    Membre éprouvé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    83
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 83
    Par défaut
    Bonjour,
    Une classe correspond à la description d'un objet, que ton code semble utiliser.
    Il faut que tu l'inclues avant toute utilisation de l'objet en question.

    Ca semble être le fichier class.phpmailer.php (Require_once('class.phpmailer.php')

    La classe devrait pas être très loin de là où tu as trouvé le code ^^

  4. #4
    Inactif   Avatar de Deallyra
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    1 997
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Par défaut
    description d'un objet...
    ok

    merci

    sinon, à quoi correspond

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    	$mail->Host='hote_smtp'
    	;
    *Si la réponse vous convient, n'oubliez pas le tag
    *Exprimez vous dans un français correct; on prend le temps de vous lire, prenez le temps de bien écrire.
    *Et comment on interprète votre code? N'oubliez pas la balise!

    *Pour une mise en page simple avec des divs.
    *Pour faire des formulaires xHTML CSS.

  5. #5
    Inactif   Avatar de Deallyra
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    1 997
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Par défaut
    Je n'arrive pas à faire fonctionner le code...
    aucun e-mail ne m'est envoyé...

    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
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
     
    	require_once('phpmailer/class.phpmailer.php')
    	;
    	if(isset($_POST['E-Mail']))
    	{
    		set_time_limit(0)
    		;
    		if(is_uploaded_file($_FILES['attach']['tmp_name']))
    		{
    			$mail = new PHPmailer()
    			;
    			$mail->IsSMTP()
    			;
    			$mail->IsHTML(true)
    			;
    			$mail->Host='hote_smtp'
    			;
    			$mail->From='monadresse@fai.fr'
    			;
    			$mail->AddAddress($_POST['E-Mail'])
    			;
    			$mail->AddReplyTo('monadresse@fai.fr')
    			;			
    			$mail->Subject= 'Espace Jeune_ Inscription'
    			;
    			$mail->Body=htmlentities($_POST['Requete'])
    			;
    			$mail->AddAttachment($_FILES['attach']['tmp_name'])
    			;
    			if(!$mail->Send())
    			{
    				echo $mail->ErrorInfo
    				; 
    			}
    			else
    			{
    				echo '
    					<div id = "texte">
    						<div id = "ie">
    							Mail envoyé avec succès
    						</div>
    					</div>'
    				;
    				$mail->SmtpClose()
    				;
    				unset($mail)
    				;
    			}
    			;
    		}
    		else 
    		{
    			echo ('Erreur : Pièce jointe non téléchargée!')
    			;
    		}
    		;
    	}
    	;
    ?>
    <div id = "texte">
    	<div id = "ie">
    		Veuillez remplir ce formulaire:
    		<br />
    		<br />
    		<form name = "contact" method = "POST" action = "" onSubmit = "return verifier_formulaire_jeune()">
    			<div id = "contact_label">
    				<br />
    				<label for = "Nom">
    					-Nom :
    				</label>
    				<input name = "Nom" type = "text" id = "Nom" size = "20" />
    				<br />
    				<label for = "Prenom">
    					-Prénom :
    				</label>
    				<input name = "Prenom" type = "text" id = "Prenom" size = "20" />
    				<br />
    				<label for = "E-Mail">
    					-E-Mail :
    				</label>
    				<input name = "E-Mail" type = "text" id = "E-Mail" size = "20" />
    				<br />
    				<label for = "Telephone">
    					-Téléphone :
    				</label>
    				<input name = "Telephone" type = "text" id = "Telephone" size = "20" />
    				<br />
    				<label for = "Adresse">
    					-Adresse :
    				</label>
    				<input name = "Adresse" type = "text" id = "Adresse" size = "20" />
    				<br />
    				<label for = "Code_Postal">
    					-Code Postal :
    				</label>
    				<input name = "Code_Postal" type = "text" id = "Code_Postal" size = "20" />
    				<br />
    				<label for = "Ville">
    					-Ville :
    				</label>
    				<input name = "Ville" type = "text" id = "Ville" size = "20" />
    				<br />
    				<label for = "CV">
    					-CV :
    				</label>
    				<input name = "CV" type = "file" id = "CV" size = "20" />
    				<br />
    				<input name = "Effacer" type = "reset" value = "Effacer" />
    			    <input name = "Envoyer" type = "submit" value = "Envoyer" />
    			</div>
    			<div>
    				-Votre demande :
    				<br />
    				<textarea name = "Requete" rows = "10" cols = "50" wrap = "VIRTUAL"></textarea>
    				<br />
    				<br />
    				<!--[if IE]>
    					<br />
    				<![endif]-->
    			</div>
    			<input type = "hidden" value = "oui" name = "correct" />
    		</form>
    j'obtiens ce message :
    Notice: Undefined index: attach in c:\documents and settings\(...)\v_contact_jeune.php on line 19
    Erreur : Pièce jointe non téléchargée!
    ma ligne 19 correspond à :
    if(is_uploaded_file($_FILES['attach']['tmp_name']))
    *Si la réponse vous convient, n'oubliez pas le tag
    *Exprimez vous dans un français correct; on prend le temps de vous lire, prenez le temps de bien écrire.
    *Et comment on interprète votre code? N'oubliez pas la balise!

    *Pour une mise en page simple avec des divs.
    *Pour faire des formulaires xHTML CSS.

  6. #6
    Membre éclairé Avatar de knoodrake
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2007
    Messages : 86
    Par défaut
    c'est normal tu n'a pas d'entrée nomé "attach" dans ton formulaire.
    En revanche, ton fichier ( ton input type='file' ) s'apelle CV (name='CV')

    remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(is_uploaded_file($_FILES['attach']['tmp_name']))
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(is_uploaded_file($_FILES['CV']['tmp_name']))

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

Discussions similaires

  1. [Mail] Envoyer une page html par mail
    Par Schlapp67 dans le forum Langage
    Réponses: 7
    Dernier message: 20/10/2006, 19h16
  2. Réponses: 1
    Dernier message: 24/08/2006, 22h07
  3. [Mail] envoyer ma page courante par mail
    Par karimphp dans le forum Langage
    Réponses: 5
    Dernier message: 09/06/2006, 13h09
  4. [Mail] envoyer une page web par mail
    Par Zen_Fou dans le forum Langage
    Réponses: 8
    Dernier message: 06/04/2006, 18h06
  5. [Mail] Envoyé des caractères spéciaux par mail
    Par Oberown dans le forum Langage
    Réponses: 1
    Dernier message: 17/03/2006, 00h55

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