php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 13.01.2005, 00:11  
Gast
 
Beiträge: n/a
Standard [Erledigt] imap anhang problem

Moinsen

Ich versuch seit einiger Zeit mit den imap functions von php n Mailscript zu coden.
läuft leider nur nie so wie ich will
und jetzt bin ich entgeultig an einem punkt angekommen, an dem ich nicht weiterkomm.
Der Anhang einer Mail (der definitiv vorhanden ist) laesst sich nicht ermitteln.
Nichteinmal ob überhaupt ein anhang vorhanden ist.

Ich hab von einigen den tipp bekommen, dass über imap_fetchstructure() zu regeln.
Da tritt auch (meiner denkenweise nach zu urteilen) der fehler auf.
in dem enstandenen objekt bei benutzung der funktion sollte ein array "parts" vorhanden sein, was es auch ist, nur es ist leer.
komplett leer ...
liegt das an diesen multipart messages ??
folgendes kommt bei mir raus wenn ich var_dump() von dem fetchstructure objekt mache:

object(stdClass)(12) {
["type"]=>
int(1)
["encoding"]=>
int(0)
["ifsubtype"]=>
int(1)
["subtype"]=>
string(5) "MIXED"
["ifdescription"]=>
int(0)
["ifid"]=>
int(0)
["lines"]=>
int(1311)
["ifdisposition"]=>
int(0)
["ifdparameters"]=>
int(0)
["ifparameters"]=>
int(1)
["parameters"]=>
array(1) {
[0]=>
object(stdClass)(2) {
["attribute"]=>
string( "BOUNDARY"
["value"]=>
string(41) "----=_NextPart_000_0049_01C19BB1.252A2440"
}
}
["parts"]=>
array(0) {
}
}

Hat irgendwer ne idee ??

Danke im vorraus für die Hilfe
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 13.01.2005, 01:55  
Gast
 
Beiträge: n/a
Standard

Der Weg ueber imap_fetchstructure() ist schon absolut richtig, sieht nur schwer danach aus, dass deine Mail wirklich keinen Anhang hat (vielleicht mixed du die IDs an irgendeiner Stelle ( ID != UID ). Bei einer Mail mit Anhang sollte das ganze in etwa so aussehen:
Code:
object(stdClass)#24 (11) {
  ["type"]=>
  int(1)
  ["encoding"]=>
  int(0)
  ["ifsubtype"]=>
  int(1)
  ["subtype"]=>
  string(5) "MIXED"
  ["ifdescription"]=>
  int(0)
  ["ifid"]=>
  int(0)
  ["ifdisposition"]=>
  int(0)
  ["ifdparameters"]=>
  int(0)
  ["ifparameters"]=>
  int(1)
  ["parameters"]=>
  array(1) {
    [0]=>
    object(stdClass)#25 (2) {
      ["attribute"]=>
      string(8) "BOUNDARY"
      ["value"]=>
      string(36) "------------000104080307040202050306"
    }
  }
  ["parts"]=>
  array(2) {
    [0]=>
    object(stdClass)#26 (12) {
      ["type"]=>
      int(0)
      ["encoding"]=>
      int(0)
      ["ifsubtype"]=>
      int(1)
      ["subtype"]=>
      string(5) "PLAIN"
      ["ifdescription"]=>
      int(0)
      ["ifid"]=>
      int(0)
      ["lines"]=>
      int(9)
      ["bytes"]=>
      int(292)
      ["ifdisposition"]=>
      int(0)
      ["ifdparameters"]=>
      int(0)
      ["ifparameters"]=>
      int(1)
      ["parameters"]=>
      array(2) {
        [0]=>
        object(stdClass)#27 (2) {
          ["attribute"]=>
          string(7) "CHARSET"
          ["value"]=>
          string(10) "ISO-8859-1"
        }
        [1]=>
        object(stdClass)#28 (2) {
          ["attribute"]=>
          string(6) "FORMAT"
          ["value"]=>
          string(6) "flowed"
        }
      }
    }
    [1]=>
    object(stdClass)#29 (13) {
      ["type"]=>
      int(3)
      ["encoding"]=>
      int(3)
      ["ifsubtype"]=>
      int(1)
      ["subtype"]=>
      string(12) "VND.MS-EXCEL"
      ["ifdescription"]=>
      int(0)
      ["ifid"]=>
      int(0)
      ["bytes"]=>
      int(28768)
      ["ifdisposition"]=>
      int(1)
      ["disposition"]=>
      string(6) "INLINE"
      ["ifdparameters"]=>
      int(1)
      ["dparameters"]=>
      array(1) {
        [0]=>
        object(stdClass)#30 (2) {
          ["attribute"]=>
          string(8) "FILENAME"
          ["value"]=>
          string(9) "Draw2.xls"
        }
      }
      ["ifparameters"]=>
      int(1)
      ["parameters"]=>
      array(1) {
        [0]=>
        object(stdClass)#31 (2) {
          ["attribute"]=>
          string(4) "NAME"
          ["value"]=>
          string(9) "Draw2.xls"
        }
      }
    }
  }
}
  Mit Zitat antworten
Alt 13.01.2005, 10:22  
Gast
 
Beiträge: n/a
Standard

Ist nur ein Vorschlag !

Habe auch mal damit rumgebastelt, bis ich dann bei folgenen Code hängengeblieben bin.

PHP-Code:
    // überprüfe ob Mail multi-part ist und datei anhang hat [2]
    
$type_array=array("text","multipart","message","application","audio","image","video","other");
    
$encoding_array=array("7BIT","8BIT","BINARY","BASE64","QUOTED-PRINTABLE","OTHER");
    
$structure=imap_fetchstructure($mailbox,$ID);
    
$attachments=array();
    
$parts_cc count($structure->parts);
    if (
$parts_cc 0) {
    foreach(
$structure->parts as $key=>$part) {
    if(
$part->disposition && trim(strtoupper($part->disposition))=="ATTACHMENT") {
    
$name_found=false;
    foreach(
$part->parameters as $t2) {
    if(
trim(strtoupper($t2->attribute))=="NAME") {
        
$name_found=True;
        
$name_st=trim($t2->value);
    } }
    if (!
$name_found) {
    foreach(
$part->dparameters as $t2) {
    if(
trim(strtoupper($t2->attribute))=="FILENAME"){
    
$name_found=True;
    
$name_st=trim($t2->value);
    } } }
    
$anhang_datei imap_fetchbody($mailbox,$ID,$key+1);
    
// echo imap_base64($anhang_datei); nur ne kontrolle
    
$anhang_len strlen($anhang_datei);
    
$attachments[]=array($name_st,$type_array[$part->type],$encoding_array[$part->encoding],$anhang_datei,$anhang_len);
    unset(
$tmp);
    }
    }
    } 
$attachments kann dann mittels foreach ausgelesen werden.
  Mit Zitat antworten
Alt 13.01.2005, 18:05  
Gast
 
Beiträge: n/a
Standard

Also ... ich hab mit einer 100%igen sicherheit einen anhang (hoechst persoenlich ) per outlook hinzugefuegt und wenn ich die mail in outlook runnalade dann ist der anhang dort auch verfuegbar ... in dem script jedoch nicht.

Das mit der UID check ich jez net .... aber wenn ich nur eine mail habe muesste das doch imap_fetchstructure($connection,1) sein oder net ?

Also wie ich es coden "sollte" ist mir bewusst .... nur es laeuft halt net weil parts halt leer ist (warum auch immer) ...

ich habs auch mal wie folgt versucht:
den body auslesen (der enthaelt ja so komischen code über den anhang,zb auch den dateinamen) ... nur funzt das auch net so wirklich ... vor allem wenn ich dann den dateinamen hab weiss ich net woher ich die datei selbst nehmen soll

ich hab die ID für imap_fetchstructure übrigends aus der schleife entnommen und darüber zeigt er ja auch den body und den header an.

Vllt liegt es einfach nur an der Art der Mails kann das sein ?

btw: Danke für eure Hilfe
  Mit Zitat antworten
Alt 14.01.2005, 09:10  
Gast
 
Beiträge: n/a
Standard

probier halt mal andere mail clients .. pack den gleichen anhang rein, den gleichen text
und vergleich das ding .. zur not - wenn du das lokal machst und auf die mail-files
direkt zugriff hast, auch da
  Mit Zitat antworten
Alt 14.01.2005, 17:20  
Gast
 
Beiträge: n/a
Standard

okay ich versuchs mal mit anderen mail-clients ....

*ausprobier*

danke für die hilfe schonmal

EDIT:

Also habs jetzt ausprobiert und weiss definitiv dass es net an outlook oder den mails generell liegt.
hab von gmx aus mails versendet und auch von anderen maildingern und anderen mailservern etc ...
selbst diese komischen spam-virus-mails, die meistens ja anhaenge haben werden bei mir ohne anhang dargestellt *amkopfkratz*
also meine email adresse muss bei outlook auch durch server-authentifizierung angemeldet werden, spielt das da vllt ne rolle ?

wozu sind denn diese "parts" in den mails wirklich da ? ... ich hab irgendwo mal gelesen dass da auch informationen ueber die wirkliche mail angegeben werden, sprich ueber den text, und dann ist es ja irgendwie komisch, dass es bei mir ueberhaupt keine parts gibt.

Hilfeeee

danke @alle die es versucht haben mir zu helfen (in anderen foren versuchen es die leute nimmal)
  Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Galerie Problem... coraplanet PHP Tipps 2008 4 06.06.2008 13:42
datensätze defekt oder problem mit dem einlesen? Ministry Datenbanken 4 06.07.2006 18:42
krankes Problem, schwer zu beschreiben ZeHa PHP Tipps 2006 6 21.04.2006 13:35
problem!!! PHP Tipps 2006 6 08.02.2006 11:06
[Erledigt] wieder ein Problem bei phpmailer und smtp PHP Tipps 2006 24 07.02.2006 01:07
imap probleme...Wie installiert man Imap? Server, Hosting und Workstations 2 06.12.2005 06:14
Email mit Anhang von Festplatte ckrentel PHP Tipps 2007 1 04.12.2005 16:02
Problem mit Anhang bifi5590 PHP Tipps 2005-2 3 27.07.2005 21:44
[Erledigt] Problem mit Backslash Patrick Schwarz PHP Tipps 2005-2 5 26.07.2005 09:54
[Erledigt] PHP Upload (Master Value/Local Value Problem) PHP-Fortgeschrittene 5 23.11.2004 07:21
[Erledigt] problem mit imap in php PHP-Fortgeschrittene 3 02.11.2004 21:01
Webmail mit IMAP / Problem mit Attachment speichern. PHP-Fortgeschrittene 1 13.10.2004 10:06
Mail Problem mit Anhang Spyker PHP-Fortgeschrittene 2 21.09.2004 21:41
Problem mit alter JavaScript-Funktion woods PHP Tipps 2004 1 13.08.2004 13:34

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php imap anhang, php imap anhang speichern, php imap anhang auslesen, php boundary imap, php imap multipart, php imap disposition, php imap feststellen ob anhang vorhanden, boundary imap, php klasse aus imap_fetchstructure anhänge auslesen, imap auslesen ohne anhänge, imap php body anhang, php imap boundary, php anhang speichern, imap_fetchstructure komplett auslesen, anhänge in outlook php imap, imap disposition, http://www.php.de/php-fortgeschrittene/15891-imap-anhang-problem.html, php kodierung einer mail auslesen imap, outlook imap anhang, imap_fetchstructure multipart boundary

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:12 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.