Einzelnen Beitrag anzeigen
  #10 (permalink)  
Alt 10-09-2003, 21:32
YellowSky
 Newbie
Links : Onlinestatus : YellowSky ist offline
Registriert seit: Sep 2003
Beiträge: 8
YellowSky ist zur Zeit noch ein unbeschriebenes Blatt
Standard

@TobiaZ: welcher autor?

@Günni: magst du vielleicht mal nen blick drauf werfen ... vielleicht fällt dir was auf.

PHP-Code:
class sendmail {

  var 
$from    "";
  var  
$to      = array();
  var  
$subject  "";
  var  
$text    "";
  var  
$attached  = array();

  function 
sendmail$f=''$t=''$s=''$b=''$a='' ) {
    
$this->boundary    strtoupper(md5(uniqid(time())));
    if( !empty(
$f) )  $this->from$f );
    if( !empty(
$t) )  $this->to$t );
    if( !empty(
$s) )  $this->subject$s );
    if( !empty(
$b) )  $this->text$b );
    if( !empty(
$a) )  $this->attachment$a );
  }

  function 
from$f$n='' ) {
    
$this->from    = empty($n) ? $f "$n <$f>";
  }

  function 
to$t ) {
    
$this->to    is_array($t) ? $t : array($t);
  }

  function 
subject$s ) {
    
$this->subject  $s;
  }

  function 
text$t )    {
    
$this->text  =  /* html text */
            
"\n--$this->boundary".
            
"\nContent-Type: text/html; charset=\"iso-8859-1\"".
            
"\nContent-Transfer-Encoding: 8bit".
            
"\n\n$t".
            
/* plain text */
            
"\n--$this->boundary".
            
"\nContent-Type: text/plain; charset=\"iso-8859-1\"".
            
"\nContent-Transfer-Encoding: quoted-printable".
            
"\n\n".strip_tags($t);
  }

  function 
attachment$f$n='' ) {
    
$fileContent    =  is_file($f) ? join(""file($f)) : $f;
    
$fileName      =  empty($n) ? ( is_file($f) ? basename($f) : "attachment".count($attached).".dat" ) : $n;
    if( !empty(
$fileContent) )
                
/* attach files */
      
$this->attached[]=  "\n--$this->boundary".
                
"\nContent-Type: application/octet-stream; name=\"$fileName\"".
                
"\nContent-Transfer-Encoding: base64".
                
"\nContent-Disposition: attachment; filename=\"$fileName\"".
                
"\n\n".chunk_split(base64_encode($fileContent));
  }

  function 
send() {
    
$headers  =  /* multipart header */
            
"From: $this->from".
            
"\nReply-To: $this->from".
            
"\nX-Mailer: sendmail.class v.2 by future media".
            
"\nMIME-Version: 1.0".
            
"\nContent-Type: multipart/mixed; boundary=\"$this->boundary\"".
            
"\n\nThis is a multi-part message in MIME format.".
            
/* add text */
            
$this->text.
            
/* add attachments */
            
join""$this->attached).
            
/* end mail */
            
"--$this->boundary--";

    
$mailError  =  0;
    foreach( 
$this->to as $to )
      if( @
mail$to$this->subject""$headers ) ) $mailError--;

    
// debug
    
echo  "<textarea style='width:800;height:300'>$headers</textarea>";
  }

}

// test

$MM  = new sendmail"MultipartMail <server@actionscripter.de>""tobias@actionscripter.de""testmail""das ist ein <img src='test.jpg'> <b>test</b>" );
$MM->attachment"test.jpg" );
$MM->send(); 

danke
YellowSky
Mit Zitat antworten