Envoie d'une pièce jointe venant d'un formulaire par mail

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Envoie d'une pièce jointe venant d'un formulaire par mail

par Chile » 30 juin 2006, 21:45

ben j'ai trouvé !
par contre je n'arrive pas a trouver la solution pour l'envoie de deux fichiers simultanement :(
et aussi :oops: , je voudrais que le formulaire puisse etre expédié meme si le fichier n'est pas joint...pour l'instant j'ai l'erreur !
si qlq sait comment !
merci

par Chile » 30 juin 2006, 21:01

salut,
je souhaite egalement faire un envoie de mail avec fichier joint !
ou puis je trouver le fichier « class.mailer.php » ?
merci

par pierrecalligaro » 10 mai 2006, 13:14

merci Ryle, c'est bien ça. Il faut simplement mettre le bon chemin.

par pierrecalligaro » 03 mai 2006, 17:03

voici le chemin que je mets en attachment :
$mailer->attachment($content_dir .$date . '_' . $name_file, 'cv.doc');
Je n'ai pas d'erreur mais je ne reçois pas de mail. Sans attachment mon mail fonctionne correctement.

par Ryle » 03 mai 2006, 15:59

Le nom du fichier, tu l'as effectivement puisque tu le génères pour l'enregistrer, il te suffit donc bien de l'utiliser. En revanche, le chemin n'est pas l'url du fichier, mais l'emplacement du fichier sur le serveur (exactement comme pour le move_upload) :

Si tu enregistres le fichier dans le dossier " $content_dir " avec le nom " $date.'_'.$name_file ", alors il te suffit normalement de redonner le même chemin (pour qu'il retrouve le dossier) et le même nom (pour le fichier) à ta fonction attachement :)

par pierrecalligaro » 03 mai 2006, 15:04

Merci Ryle, mais maintenant comment connaitre le nom du fichier sachant que lorsque je l'insére dans le dossier sur mon serveur, je le nomme avec une date + l'heure + les secondes et le nom du fichier d'origine. De pus j'ai plusieurs fichiers .doc dans mon dossier.
Je fais cela pour etre sur d'avoir un nom unique par fichier enregistré.

si je mets comme chemin :
$mailer->attachment('www.monsite.com/fichier/'.$date . '_' . $name_file, 'cv.doc');
Il ne vas pas me retrouver le fichier !!

par Ryle » 03 mai 2006, 12:32

Hello,

Pour pouvoir retransmettre un fichier, il te faut dans un premier temps le récupérer sur le serveur, puis le passer en pièce jointe.

Pour la récupération sur le serveur, c'est ce que fait la fonction move_uploaded_file() en le copiant dans le dossier que tu lui spécifies.

L'envoi du fichier en pièce jointe se fait donc ensuite à partir de ce même dossier :)

Envoie d'une pièce jointe venant d'un formulaire par mail

par pierrecalligaro » 03 mai 2006, 12:22

Bonjour à tous,
Dans un formulaire j’ai un input de type « file » qui permet à l’internaute de parcourir son ordi pour inclure une pièce jointe au format word (.doc).
Une fois le formulaire posté, je voudrais envoyer un mail avec la pièce jointe. Mais la je ne sais pas comment la récupérer pour l’insérer dans mon mail.
J’ai récupéré une classe « class.mailer.php » ou j’ai la possibilité de faire un attachment :
$mailer->attachment('/chemin_du_fichier/fichier.doc', 'fichier.doc');
Je ne sais pas quoi mettre dans le chemin du fichier.

voici mon code :
<?php
require_once("../SQL/param_connect.php");

include('class.mailer.php');

$nom=$_POST['nom'];
$prenom=$_POST['prenom'];
$tel=$_POST['tel'];
$email=$_POST['eMail'];
$adresse=$_POST['adresse'];
$cp=$_POST['cp'];
$ville=$_POST['ville'];
$pays=$_POST['pays'];


$comment=$_POST['comment'];
$id_num=$_POST['id_num'];
$id_cv=$_POST['id_cv'];

$date = date("dmYHis");


// upload du cv
$content_dir = '../fichiers/'; // dossier où sera déplacé le fichier

$tmp_file = $_FILES['fichier']['tmp_name'];

// on copie le fichier dans le dossier de destination
    $name_file = $_FILES['fichier']['name'];

    $toto=move_uploaded_file($tmp_file, $content_dir . $date . '_' . $name_file);


$subject = 'essai';

$mailer = new Mailer();

$mailer->set_from('[email protected]', 'essai');
$mailer->set_address('[email protected]');

$mailer->set_format('3');
$mailer->set_subject($subject);


$mailer->attachment('/chemin_fichier/fichier.doc', 'fichier.doc');



if ( $mailer->send() ) {
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
  <head>
    <title>Cadidature pour le poste de : <?php echo $idcv; ?></title>
    <link type="text/css" href="../css/formstyles.css" rel="stylesheet"/>
</head>

<body>
  <div id="last">
<p>Votre candidature a bien été enregistrée.</p>
</div>
</body>

</html>

<?php
$chemin_cv="http://www.arcos-partners.com/fichiers/". $date . '_' . $name_file;

$r2="insert into candidature (nom, prenom, email, tel, adresse1, cp, ville, pays, id_offre, message,date_depot, chemin_cv)
                 values('$nom', '$prenom', '$email', '$tel', '$adresse', '$cp', '$ville', '$pays', '$id_num', '$comment', NOW(), '$chemin_cv')";
$rq2=mysql_query($r2) or die("Erreur : ".mysql_error());

} else { echo "erreur";}
?>