Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 28-07-2008 16:33:15

Asfaloth
Membre
Lieu: Bruxelles
Date d'inscription: 13-05-2008
Messages: 83
Site web

[Zend_Mail] Récupération de fichiers joins.

Après une longue et laborieuse recherche sans résultat, je me tourne vers mon sauveur habituel, le Z-F Forum lol

Est-ce que quelqu'un aurait un bout de code (ZF ou non) qui permet de récupérer un fichier attaché à un mail ?

pour envoyer des fichiers attachés on trouve autant de doc qu'on veut, mais dès qu'il s'agit de les récupérer on ne trouve plus personnes sad


La capacité d'apprendre est un don.
La faculté d'apprendre est un talent.
La volonté d'apprendre est un choix.
-=[ Frank Herbert ]=-

Hors ligne

 

#2 30-07-2008 10:49:34

mdelanno
Membre
Lieu: Nord
Date d'inscription: 26-08-2007
Messages: 90
Site web

Re: [Zend_Mail] Récupération de fichiers joins.

Je pense que ça doit pouvoir se faire avec la méthode getPart : http://framework.zend.com/manual/fr/zen … d-fetching

Hors ligne

 

#3 25-11-2008 13:00:12

Asfaloth
Membre
Lieu: Bruxelles
Date d'inscription: 13-05-2008
Messages: 83
Site web

Re: [Zend_Mail] Récupération de fichiers joins.

Alors je reviens à la charge avec mon problème de mail.

J'ai déjà résolu une bonne partie, à savoir que je sais récupérer le fichier join à un mail.
Reste plus qu'un seul petit soucis, je n'arrive pas à trouver le nom du fichier joint pour l'enregistrer...

Voici le code que j'ai pour le moment (bête et brutal, tout droit sortis de la doc)

Code:

echo $mail->countMessages() . " messages found\n";
        $i = 1;
        foreach ($mail as $message) 
        {
            echo "{$i} : Mail from '{$message->from}': {$message->subject}\n";
            $i++;
            
                    // dump all headers
            foreach ($message->getHeaders() as $name => $value) {
                if (is_string($value)) {
                    echo "$name: $value\n";
                    continue;
                }
                foreach ($value as $entry) {
                    echo "$name: $entry\n";
                }
            }
            
            $part = $message;
            
            print_r($part);
            while ($part->isMultipart()) {
                $part = $message->getPart(2);
            }
            echo 'Type of this part is ' . strtok($part->contentType, ';') . "\n";
            echo "Content:\n";
            print_r($part->getContent());
        }

Et voici ce que me renvoie ma fonction:

Code:

2 messages found
1 : Mail from 'Test <test@xxxxx.be>': LLU
return-path: <test@xxxxx.be>
delivered-to: test@0
received: from b0.ovh.net (HELO queue) (x.x.x.x) by b0.ovh.net with SMTP; 25 Nov 2008 09:58:37 -0000
received: from mailrelay008.isp.belgacom.be (x.x.x.x) by mx0.ovh.net with SMTP; 25 Nov 2008 09:58:36 -0000
received: from x.x.x.x.adsl-dyn.isp.belgacom.be (HELO [x.x.x.x]) ([x.x.x.x1]) by relay.skynet.be with ESMTP; 25 Nov 2008 10:58:34 +0100
received-spf: softfail (mx0.ovh.net: transitioning SPF record at mx.ovh.com does not designate x.x.x.x as permitted sender)
x-belgacom-dynamic: yes
x-ironport-anti-spam-filtered: true
x-ironport-anti-spam-result: AgABALtaK0lXQbtR/2dsb2JhbAAI0geCfA
message-id: <492BCC4C.9040103@xxxxx.be>
date: Tue, 25 Nov 2008 10:58:36 +0100
from: Test <test@xxxxx.be>
user-agent: Thunderbird 2.0.0.17 (X11/20080925)
mime-version: 1.0
to: test@xxxxx.be
subject: LLU
content-type: multipart/mixed; boundary="------------030403080508070909060807"
x-ovh-tracer-id: 14721141282770516217
x-ovh-remote: 195.238.6.174 (mailrelay008.isp.belgacom.be)
x-ovh-local: x.x.x.x (mx0.ovh.net)
x-spam-check: DONE|H 0.5/N

Type of this part is text/xml

Content:
<?xml version="1.0"?>
<!DOCTYPE OrderElement SYSTEM "BGCIN1.dtd">
<OrderElement>
    <Order ReferenceNumber="File 1.0" ApplicationDate="20010415131500" CustomerID="OLO customerID">
         <OrderAction ReferenceNumber="1a" ActionType="Provide-New" ServiceRequiredDate="20010429120000" PaymentAgreementId="1" OfferName="Raw Copper PTL" >
             <Remark Type="Commercial" RemarkText=""/>
             <Remark Type="Technical" RemarkText=""/>

             <Remark Type="Technical" RemarkText=""/>
             <EndPointA Street="Patattenstraat" HouseNumber="1" HouseNumberAlpha="" Apartment="A" Floor="3" Block="" MailBoxNumber="" ZipCode="1000" City="Brussel"/>             
             <EndPointB Type="LEX" CoLocationLevelValue ="56KOR0000" OLOMDFID="50000" OLOMDFUpRightID="" OLOMDFPositionID=""/>
             <EndCustomer DialNumber="" ContactNumber=""/>
         </OrderAction>
     </Order>
</OrderElement>

Donc ici pas de soucis comme vous pouvez le voir, je récupère le contenu du fichier join (ici un bête xml) mais pas moyen de mettre la main sur son nom sad

Merci


La capacité d'apprendre est un don.
La faculté d'apprendre est un talent.
La volonté d'apprendre est un choix.
-=[ Frank Herbert ]=-

Hors ligne

 

#4 11-12-2008 14:50:53

Asfaloth
Membre
Lieu: Bruxelles
Date d'inscription: 13-05-2008
Messages: 83
Site web

Re: [Zend_Mail] Récupération de fichiers joins.

je me permet de faire un ptit up!

Ca me coince vraiment dans mon développement, si qqun à une idée, même uste un début de piste je suis preneur

Merci smile


La capacité d'apprendre est un don.
La faculté d'apprendre est un talent.
La volonté d'apprendre est un choix.
-=[ Frank Herbert ]=-

Hors ligne

 

#5 29-01-2009 18:34:58

jenreve
Nouveau membre
Date d'inscription: 22-12-2008
Messages: 3

Re: [Zend_Mail] Récupération de fichiers joins.

bonsoir,

une piste pour vous aiguiller:

une fois que vous avez récupéré votre "part"

vous récupérez le header 'content-type', et vous séparez la chaine au niveau du ';'

Code:

$headerContentType = $part->getHeader('content-type');

list($contentType,$name) = explode(";", $headerContentType);

à vous de faire le reste

bon courage

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