Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 06-10-2008 22:43:10

Marty
Nouveau membre
Date d'inscription: 02-01-2008
Messages: 4

[Resolu][Zend_Mail] Envoi d'une pièce jointe en "transit"

Bonsoir tout le monde,

Je mets en place un site avec une conception MVC à l'aide de ZF.
Voici mon problème:
- Sur une page du site, l'utilisateur saisit un formulaire avec pluisieurs champs et indique un fichier F sur son disque local.
- Ensuite le site récupère les données pour envoyer un mail avec le fichier F en pièce jointe.

La question est comment gérer le fichier F? Comment le transiter entre le pc local du visiteur du site et l'attachement du mail émis par ZF?
Je suis en train d'étudier la nouvelle doc du ZF 1.6 à propos du Zend_File_Transfer mais j'aurais été intéressé par un retour d'expérience sur comment goupiller tout ça!!

Dernière modification par Marty (09-10-2008 22:34:26)

Hors ligne

 

#2 07-10-2008 15:54:47

acharrex
Membre
Lieu: Suisse
Date d'inscription: 27-04-2008
Messages: 135

Re: [Resolu][Zend_Mail] Envoi d'une pièce jointe en "transit"

Si ton champ "upload" s'appelle "image", ça devrait donner cela :

Code:

$mail = new Zend_Mail();

if ( isset($_FILES["image"]) && $_FILES["image"]["size"] > 0 ) {
    $imageContent = file_get_contents($_FILES["image"]["tmp_name"]);
    $mail->createAttachment($imageContent, $_FILES["image"]["type"], Zend_Mime::DISPOSITION_INLINE, Zend_Mime::ENCODING_BASE64);
}

$mail->setBodyHtml('<b>Salut</b>')
     ->setFrom('from@me.com')
     ->addTo('to@you.com')
     ->setSubject('Subject')
     ->send();

Dernière modification par acharrex (07-10-2008 16:16:58)

Hors ligne

 

#3 08-10-2008 09:05:42

_Fuse_
Membre
Lieu: Aquitaine
Date d'inscription: 10-07-2008
Messages: 92

Re: [Resolu][Zend_Mail] Envoi d'une pièce jointe en "transit"

Salut,

acharex ta méthode est intéressante.

perso j'ai procedé un peut differament.

En supposant que ton champ "upload"  se nome  "pdf"

Code:

$mail = new Zend_Mail();

$fichierJoint = fopen($_FILES['pdf']['tmp_name'],"r");

if ($_FILES['pdf']['size'] > 0){
    $mail->createAttachment($fichierJoint,$_FILES['pdf']['type'], Zend_Mime::DISPOSITION_INLINE, Zend_Mime::ENCODING_BASE64, $_FILES['pdf']['name']);
}
...

J'ai du preciser le dernier parametre de la fonction pour que la piece jointe porte bien le nom du fichier et non pas celui du repertoire temporaire.

++

Hors ligne

 

#4 08-10-2008 11:55:41

acharrex
Membre
Lieu: Suisse
Date d'inscription: 27-04-2008
Messages: 135

Re: [Resolu][Zend_Mail] Envoi d'une pièce jointe en "transit"

Oui, moi je n'ai pas mis cela dans mon bout de code cité plus long, car je génère un nom aléatoire qui m'évite de recevoir des pièces jointes au nom farfelu (espaces ou accents dans le nom, extension en majuscule et divers autres variantes).

Voilu wink

Hors ligne

 

#5 09-10-2008 22:33:41

Marty
Nouveau membre
Date d'inscription: 02-01-2008
Messages: 4

Re: [Resolu][Zend_Mail] Envoi d'une pièce jointe en "transit"

Vos méthodes marchent impec.

Merci !!

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages