php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 1 Stimmen, 5,00 durchschnittlich.
  #1 (permalink)  
Alt 18-01-2006, 10:47
sunshine_85
 Newbie
Links : Onlinestatus : sunshine_85 ist offline
Registriert seit: Jan 2006
Ort: Geboren in Paderborn, Aufgewachsen in Borchen, Wohne in Brakel
Beiträge: 3
sunshine_85 ist zur Zeit noch ein unbeschriebenes Blatt
Standard Mit PHP eMail Anhänge in Datei speichern

Hallo,

Habe ein echtes Problem.
Ich habe mir mühsam ein Script gebastelt mit dem man e-mails auslesen kann, und habe dann auch tausende Beiträge gefunden wie man EMails mit Anhang schicken kann, aber nicht wie man den Anhang dann schließlich wieder von der e-mail löst um ihn in eine Datei abzuspeichern.
Ich habe echt garkeine Idee wie ich das anstellen soll.
Den Inhalt des Mail Body kann ich schon in einer Datei speichern.

Es wäre ganz klasse, wenn mir dabei jemand helfen könnte.

Mein bisheriges Script zum Email auslesen sieht so aus:

PHP-Code:
<?php
function MailConnect()
{
    
// Connect Daten
    
$host="123.456.789.12";
    
$port="110";
    
$user="Sonja";
    
$passwort="Hallo";
    
    
// Verbinden zur Mailbox
     
$mailbox 
imap_open("{".$host."/pop3:".$port."}INBOX","$user","$passwort")
         or die(
"Verbindung konnte nicht hergestellt werden.<br />\n");
        
        
// 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;
            
            
// Antwortempfänger erfassen
            
$mail_answer_to=$mail_header
            
->reply_to;
            
            
// Betreff erfassen
            
$mail_subject=$mail_header->subject;
            
            
// gesamte Nachricht erfassen
            
$nachricht=imap_body($mailbox$i);
            
            
//Ersetzten des \ durch nichts da sonst die Attribute 
                         //nicht mit geparst werden.
            
$nachricht=str_replace("\\",""$nachricht);
    
            
//öffnet die schon bereits vorhandene Datei 
                             //Text.php, in die 
            //dann die Nachricht geschrieben wird.        
    
            
$handle fopen("Text.php","w");
               
fputs($handle,$nachricht);
               
fclose($handle);
            
                
        }
    
    
imap_close($mailbox);
?>
DANKESCHÖN!!!
__________________
--------------------------------------------
Lebe lieber ungewöhnlich!!
Mit Zitat antworten
freelancermap.de - IT Projektvermittlung für Selbständige und Freiberufler
  #2 (permalink)  
Alt 18-01-2006, 14:09
Shurakai
 Master
Links : Onlinestatus : Shurakai ist offline
Registriert seit: May 2004
Ort: Bergisch Gladbach
Beiträge: 3.084
Shurakai ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hmm.... werden die Mails nicht einfach base64 codiert und angehängt im MailBody oder so...?
Mit Zitat antworten
  #3 (permalink)  
Alt 18-01-2006, 14:21
galaxy2
 Junior Member
Links : Onlinestatus : galaxy2 ist offline
Registriert seit: Jun 2005
Beiträge: 238
galaxy2 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hatte mal irgendwann im Internet folgendes skript dazu gefunden. Vieleicht Hilft es dir weiter:


PHP-Code:

// opens connection to a mailbox
$mbox imap_open ("{localhost:143}""username""pass");


function 
parsepart($p,$i)
   {
    global 
$mbox,$msgid,$partsarray,$j;
    
//where to write file attachments to:
    
$filestore "Y:/txt-Files/";
    
//echo "link ".$mbox."  msgnum ".$msgid. "p  ".$p." i ".$i." ARR ".$partsarray."<br>";

    //fetch only a part of the body
    
$part=imap_fetchbody($mbox,$msgid,$i);

     
//if type is not text
     
if ($p->type!=0)
      {
       
//DECODE PART
       //decode if base64
       
if ($p->encoding==3)
       {
$part=base64_decode($part);}
       
//decode if quoted printable
       
if ($p->encoding==4)
       {
$part=quoted_printable_decode($part);}
       
//no need to decode binary or 8bit!

       //get filename of attachment if present
       
$filename='';


       
// if there are any dparameters present in this part
       
if (count($p->dparameters)>0)
         {
           foreach (
$p->dparameters as $dparam)
             {
              if ((
strtoupper($dparam->attribute)=='NAME'
              ||(
strtoupper($dparam->attribute)=='FILENAME'))
                 {
                  
$filename=$dparam->value;
                 }
             }
         }
         
         
       
//if no filename found
       
if ($filename=='')
          {
           
// if there are any parameters present in this part
           
if (count($p->parameters)>0)
              {
               foreach (
$p->parameters as $param)
                 {
                   if ((
strtoupper($param->attribute)=='NAME'
                   ||(
strtoupper($param->attribute)=='FILENAME'))
                     {
                      
$filename=$param->value;
                     }
                 }
              }
          }
          
          
       
//write to disk and set partsarray variable
       
if ($filename!='')
          {
           
$partsarray[$i][attachment] = array('filename'=>$filename,'binary'=>$part);
           
$filename explode("."$filename);
           
$fp=fopen($filestore.$filename[0].$j.".".$filename[1],"w+");
           
fwrite($fp,$part);
           
fclose($fp);
          }


      }
//end if type!=0

      //if part is text
      
else if($p->type==0)
        {
         
//decode text
         //if QUOTED-PRINTABLE
         
if ($p->encoding==4)
         {
$part=quoted_printable_decode($part);}
         
//if base 64
         
if ($p->encoding==3)
         {
$part=base64_decode($part);}

         
//if plain text
         
if (strtoupper($p->subtype)=='PLAIN')1;
         
//if HTML
         
else if (strtoupper($p->subtype)=='HTML')1;
         
$partsarray[$i][text] = array('type'=>$p->subtype,'string'=>$part);
        }

   
// if subparts... recurse into function and parse them too!
   // this is a recursive call of the function
   
if (count($p->parts)>0){
       foreach (
$p->parts as $pno=>$parr){
           
parsepart($parr,($i.'.'.($pno+1)));
           }
       }
return;
}

/*=============================================*/
/*============= End of Function ===============*/
/*=============================================*/

$number_of_emails imap_num_msg($mbox);

if(
$number_of_emails>0)
{
// Number of message which will be analysed
for ($j=1;$j<=$number_of_emails;$j++)
{
$msgid $j;

//fetch structure of message
$s=imap_fetchstructure($mbox,$msgid);

 
/*================================================================*/
 
  //checks if there are any parts
  
if (count($s->parts)>0)
   {
    foreach (
$s->parts as $partno=>$partarr)
     {
      
//parse parts of email
      
parsepart($partarr,$partno+1);
     }
   }
  
//for not multipart messages
  
else{
       
//gets the full/whole body of the message
       
$text=imap_body($mbox,$msgid);
       
//decode if quoted-printable
       
if ($s->encoding==4$text=quoted_printable_decode($text);
       
//OPTIONAL PROCESSING
       
if (strtoupper($s->subtype)=='PLAIN'$text=$text;
       if (
strtoupper($s->subtype)=='HTML'$text=$text;

       
$partsarray['not multipart'][text]=array('type'=>$s->subtype,'string'=>$text);
      }
      
 
/*================================================================*/

// shows all parts
print_r($partsarray);
}
}

// close connection
imap_close ($mbox); 
gruss galaxy
Mit Zitat antworten
  #4 (permalink)  
Alt 19-01-2006, 08:25
sunshine_85
 Newbie
Links : Onlinestatus : sunshine_85 ist offline
Registriert seit: Jan 2006
Ort: Geboren in Paderborn, Aufgewachsen in Borchen, Wohne in Brakel
Beiträge: 3
sunshine_85 ist zur Zeit noch ein unbeschriebenes Blatt
Standard Dankeschön

Hallo Galaxy,

Dankeschön. Hat mir schon ne ganze Ecke weitergeholfen.
Quäle mich nur gerade ein bisschen durch die variablen, weil nicht alle in dem Code deklariert sind.

Gruß

Sunshine
__________________
--------------------------------------------
Lebe lieber ungewöhnlich!!
Mit Zitat antworten
Antwort

Lesezeichen


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

Themen-Optionen
Thema bewerten
Thema bewerten:

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 an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

PHP Marktplatz-Software
PHP Marktplatz-SoftwareEs hat sich viel getan! Die neue Version 7.5.9 unserer PHP Marktplatz-Software ebiz-trader steht ab sofort zur Verfügung.

28.10.2019 | Berni

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni


 

Aktuelle PHP Scripte

SMT

Server Monitoring & Management Tool Das SMT wurde von einem Administrator für Administratoren entwickelt, es vereinfacht den Alltag in der klassischen Administration und Verwaltung. Mit dem SMT kannst Du alle Deine Server & Dienste verwalten und überwach

09.10.2020 palle_1977 | Kategorie: PHP
phplinX-Erotikportal 4 ansehen phplinX-Erotikportal 4

Erweiterbares Portal speziell für Erotik mit den Modulen Webkatalog, Bannermanagement und Kleinanzeigenmarkt. Sämtliche Module können über einen einzigen Adminbereich verwaltet werden.

18.06.2020 Cosinus14 | Kategorie: PHP/ Anzeigenmarkt
Erotik-Portal

Mit unsererem Erotik-Portal erhalten Sie ein komplettes Internetprojekt inklusive einer bedienerfreundlichem Administration sowie zahlreichen wichtigen Funktionen. Unser auf PHP und MySQL basierendes Script bietet Ihnen - und Ihren Besuchern - komfort

18.06.2020 ISD-Genthin | Kategorie: PHP/ Anzeigenmarkt
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 13:05 Uhr.