SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Webseiten professionell erstellen

Webseiten professionell erstellen zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen
Hilfe Community Kalender Heutige Beiträge Suchen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 19.11.2006, 18:48:23
Desperado_11 Desperado_11 ist offline
Anfänger
 
Registriert seit: Nov 2006
Beiträge: 9
IMAP Webmailer - Anhänge von Mails anzeigen und speichern

Hallo.

Ich schreibe gerade an einem PHP-Backend für einen Flash-Webmailer.
Um die Mail zu strukturieren und die Anhänge auszulesen habe ich
etwas gegoogelt und diesen Teil einfach in mein Skript kopiert.
Das mit der Strukturierung funktioniert auch ganz gut, allerdings
kann ich die Anhänge nicht auslesen.

Kann mir da bitte jemand helfen?

Hier der Code (relevant ist eigentlich nur der Teil in der Mitte):

PHP-Code:

<?php

include("dbconnect.php");

$abfrage "SELECT * FROM mail_konfiguration WHERE id='1'";
  
$ergebnis mysql_query($abfrage);
  while(
$row mysql_fetch_object($ergebnis))
    {
    
$passwort $row->passwort;
    
$username $row->username;
    
$mailserver $row->mailserver;
    }


$port "110";


//Verbindung zum Postfach aufbauen
$mailbox imap_open("{".$mailserver."/pop3:".$port."}INBOX",$username,$passwort); 


//Überprüfung
if($mailbox != false)
{
$var_verbindung "1";
echo 
"&var_verbindung=".$var_verbindung;


// Posteingang überprüfen 
$check=imap_check($mailbox); 


// Anzahl vorhandener Emails im Postfach 
$count_msg=$check->Nmsgs


// Anzahl neuer Emails im Postfach 
$count_new_msg=$check->Recent

// Emails auslesen 
for ($i=1$i<=imap_num_msg($mailbox); 
$i++) 


// Header erfassen 
$mail_header=imap_header($mailbox$i);

// Datum erfassen 
$mail_date=$mail_header->Date

// Mail-ID erfassen 
$mail_id=$mail_header->message_id

// Empfänger erfassen 
$mail_to=$mail_header->toaddress

// Absendername erfassen 
$mail_from_name=$mail_header->from [0]->personal

// Absender-eMail-Adresse erfassen 
$mail_from_address=$mail_header->from [0]->mailbox."@".$mail_header->from [0]->host


// Kopieempfänger erfassen 
$mail_copy_to=$mail_header->cc[0] ->mailbox."@".$mail_header->cc[0] ->host
if (
$mail_copy_to "@")
 {
$mail_copy_to "";
}

// Antwortempfänger erfassen 
$mail_answer_to=$mail_header->reply_to

// Betreff erfassen 
$mail_subject=$mail_header->subject

// Nachricht erfassen
$mail_body imap_body($mailbox,$i);



// Im Folgenden wird die Struktur der Mail ausgelesen und unnötiges HTML enfernt
       
$struct imap_fetchstructure($mailbox$i);
      
       
$parts $struct->parts;
       
$x 0;

       if (!
$parts) { /* Simple message, only 1 piece */
         
$attachment = array(); /* No attachments */
         
$content imap_body($mailbox$i);
       } else { 
/* Complicated message, multiple parts */
      
         
$endwhile false;
      
         
$stack = array(); /* Stack while parsing message */
         
$content "";    /* Content of message */
         
$attachment = array(); /* Attachments */
      
         
while (!$endwhile) {
           if (!
$parts[$x]) {
             if (
count($stack) > 0) {
               
$parts $stack[count($stack)-1]["p"];
               
$x    $stack[count($stack)-1]["i"] + 1;
               
array_pop($stack);
             } else {
               
$endwhile true;
             }
           }
        
           if (!
$endwhile) {
             
/* Create message part first (example '1.2.3') */
             
$partstring "";
             foreach (
$stack as $s) {
               
$partstring .= ($s["i"]+1) . ".";
             }
             
$partstring .= ($x+1);
          
             if (
strtoupper($parts[$x]->disposition) == "ATTACHMENT") { /* Attachment */
               
$attachment[] = array("filename" => $parts[$x]->parameters[0]->value,
                                     
"filedata" => imap_fetchbody($mailbox$i$partstring));
             } elseif (
strtoupper($parts[$x]->subtype) == "PLAIN") { /* Message */
               
$content .= imap_fetchbody($mailbox$i$partstring);
             }
           }

           if (
$parts[$x]->parts) {
             
$stack[] = array("p" => $parts"i" => $x);
             
$parts $parts[$x]->parts;
             
$x 0;
           } else {
             
$x++;
           }
         } 
/* while */
       
/* complicated message */


echo "<b>Attachment=".$attachment["filename"]."</b>";


$datum_tag substr($mail_date03);
$datum_monat substr($mail_date, -233);
$tag substr($mail_date52);
$jahr substr($mail_date, -194);
$uhr substr($mail_date, -148);


$wochentag = array(
"Mon" => "Montag"
"Tue" => "Dienstag",
"Wed" => "Mittwoch",
"Thu" => "Donnerstag",
"Fri" => "Friday",
"Sat" => "Samstag",
"Sun" => "Sonntag"
);

$wochentag_sql $wochentag[$datum_tag]; 


$monat = array(
"Jan" => "Jan."
"Feb" => "Feb.",
"Mar" => "März",
"Apr" => "April",
"May" => "Mai",
"June" => "Juni",
"July" => "Juli",
"Aug" => "Aug.",
"Sep" => "Sep.",
"Oct" => "Okt.",
"Nov" => "Nov.",
"Dec" => "Dez."
);

$monat_u $monat[$datum_monat]; 

$monat_sql $monat[$datum_monat]; 

$datum_tag_u date("d",mktime(0,$tag));

$datum_sql $datum_tag_u.". ".$monat_u." ".$jahr." - ".$uhr." Uhr";;
echo 
$datum_sql;

// Daten in db speichern
  
$eintrag "INSERT INTO mails (absender_name, absender_mail, betreff, inhalt, datum_datum, datum_tag, empfaenger, empfaenger_copy, ordner) VALUES ('$mail_from_name', '$mail_from_address', '$mail_subject', '$content', '$datum_sql', '$wochentag_sql', '$mail_to', '$mail_copy_to', '1')";
  
$eintragen mysql_query($eintrag);

//E-Mail vom Server löschen
imap_delete($mailbox$i); 

}
imap_expunge($mailbox);
imap_close($mailbox);
}
else
{
$var_verbindung "0";
echo 
"Keine Verbindung zum Mail-Postfach!";
echo 
"&var_verbindung=" $var_verbindung;


include (
"mails_auslesen.php");

?>

Geändert von Desperado_11 (19.11.2006 um 18:49:16 Uhr)
Mit Zitat antworten
  #2  
Alt 19.11.2006, 20:11:20
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
AW: IMAP Webmailer - Anhänge von Mails anzeigen und speichern

Zitat:
Zitat von Desperado_11 Beitrag anzeigen
Das mit der Strukturierung funktioniert auch ganz gut, allerdings
kann ich die Anhänge nicht auslesen.
Und das soll was genau heißen?
Mit Zitat antworten
  #3  
Alt 19.11.2006, 20:50:17
Desperado_11 Desperado_11 ist offline
Anfänger
 
Registriert seit: Nov 2006
Beiträge: 9
AW: IMAP Webmailer - Anhänge von Mails anzeigen und speichern

Das heißt, dass ich kein unnötiges HTML angezeigt bekomm.
Allerdings kann ich die Anhänge halt nicht anzeigen bzw. speichern.
Mit Zitat antworten
  #4  
Alt 20.11.2006, 15:33:39
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
AW: IMAP Webmailer - Anhänge von Mails anzeigen und speichern

Ist $struct->parts denn ein Array mit den gewünschten Objekten?
Mit Zitat antworten
  #5  
Alt 23.11.2008, 19:07:43
crowie crowie ist offline
Anfänger
 
Registriert seit: Nov 2008
Alter: 51
Beiträge: 1
AW: IMAP Webmailer - Anhänge von Mails anzeigen und speichern

So gehts (Der Mittel Teil -> Files auslesen und speichern):

PHP-Code:
if(!$parts){
    
$attachment = array();
    
$content imap_body($mbox$i);
}else{
    
$endwhile false;
    
$stack = array();
    
$content "";
    
$attachment = array();
    while(!
$endwhile){
        if(!
$parts[$x]){
            if(
count($stack) > 0){
                
$parts $stack[count($stack)-1]["p"];
                
$x $stack[count($stack)-1]["i"] + 1;
                
array_pop($stack);
            }else{
                
$endwhile true;
            }
        }

        if(!
$endwhile){
            
$partstring "";
            foreach(
$stack as $s){
                              
$partstring .= ($s["i"]+1) . ".";
            }
            
$partstring .= ($x+1);

            if (
strtoupper($parts[$x]->disposition) == "ATTACHMENT") {
                
$y++;
                
$attachment[$key] = array("filename" => $parts[$x]->parameters[0]->value"filedata" => imap_fetchbody($mbox$i$partstring));
                
$text imap_base64($attachment[$key]["filedata"]);
                
$open fopen("../email_anhang/".$sql_id."_".$attachment[$key]["filename"], "w");
                
fwrite($open$text);
                
fclose($open);
            }elseif(
strtoupper($parts[$x]->subtype) == "PLAIN") {
                
$content .= imap_fetchbody($mbox$i$partstring);
            }
        }
            
        if(
$parts[$x]->parts){
            
$stack[] = array("p" => $parts"i" => $x);
            
$parts $parts[$x]->parts;
            
$x 0;
        }else{
            
$x++;
        }
    }

Mit Zitat antworten
  #6  
Alt 02.09.2010, 09:47:02
Hakan58 Hakan58 ist offline
Anfänger
 
Registriert seit: Sep 2010
Alter: 35
Beiträge: 1
AW: IMAP Webmailer - Anhänge von Mails anzeigen und speichern

Hallo,

vielen Dank für das Beispiel, es hat mir sehr geholfen nur habe ich leider noch einen Problem.
Es werden leider keine eingebetteten Grafiken angezeigt hat dafür vielleicht jemand eine Lösung?

vielen Dank im Voraus
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

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

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
dateiupload bild anzeigen vor dem speichern per java scr. Stifler HTML, CSS und JavaScript Help! 2 24.08.2004 14:10:33
imap eingefügte Grafik im Text anzeigen FourSix PHP für Fortgeschrittene und Experten 0 03.06.2003 09:03:12
Dateianhang bei imap anzeigen FourSix PHP für Fortgeschrittene und Experten 1 28.05.2003 09:01:49


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:59:44 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt