phpbar.de logo

Mailinglisten-Archive

[php] Wie funktioniert dieses Script?!??!?

[php] Wie funktioniert dieses Script?!??!?

Kaspar Leuenberger kaspar_(at)_intergga.ch
Wed, 21 Feb 2001 18:59:37 -0800


kann mir jemand erklären, wie ich diese parameter eingeben muss, damit
schlussendlich auch ein mail ankommt.
habe scho viele varianten versucht, habe aber noch kein erfolg gehabt



<?PHP
// -------------------------------------------------------------------------
-------------------------------------
// SendEmail:
//   Function: Send eMail and add no (0), one (1) or more (n) attachments to
the mail.
//   I took the Program from Bill Adams as a sample. But I do not like these
OO-Programs, therefor I
//   did it in the old fashioned way :-)
//
//   Call Format: SendMail(Receiver, Sender, Subject, Message [, File,
Filename]) ;
//        Parms:    Receiver : The person you wish to send the message
//                  Sender   : Your own email-address
//                  Subject  : The Email's subject
//                  Message  : The story you want to tell the Receiver
//                  File     : The Filename (including path, etc.) for the
attachment you want to add (optional)
//                  Filename : (Only) Name of the file. Will be shown to
receiver (optinal)
//
//
//  Author: Rainer Leicht, conneXion Network GmbH, Wilhelm-Haas str. 6,
D-70771 Leinfelden, Germany
//          rleicht_(at)_connexion.de
//  Date:   Dec. 2000
//  Changes : None up to now !
// -------------------------------------------------------------------------
-------------------------------------

define("XNL","\r\n") ; // CONSTANT Newline CR


if (isset($MailTest))
   {
   $Testing = "YES" ;
   $TestMailFile = "Mailing.txt" ;
   }
else
   {
   $Testing = "NO" ;
   $TestMailFile = "none" ;
   }


$mime_boundary = "--==================_846811060==_" ;
$mimetype = "application/octet-stream" ;

function SendMail($ToReceiver, $FromSender, $Subject, $MsgText,
$IFile="none", $IFileName="none")
   {
global $mimetype, $mime_boundary, $Testing, $TestMailFile ;

   if (!is_array($IFile))                                  // check for
array (multiple attachments)
      {
      $File[0] = $IFile ;
      $FileName[0] = $IFileName ;
      }
   else


      for ($i=0;$i<count($IFile);$i++)
         {
         $File[$i] = $IFile[$i] ;
         $FileName[$i] = $IFileName[$i] ;
         }
      }

   $attCount = count($File) ;

   $attExists = FALSE ;                                    // check if there
is really an attachment
   for ($i=0;$i<$attCount;$i++)
      {
      if ($File[$i] != "none")
         {
         $attExists = TRUE ;
         }
      }

   $txtheaders  = "From: ".$FromSender."\n" ;              // build header
for text
   $txtheaders .= "Reply-To: ".$FromSender."\n" ;
   $txtheaders .= "X-Mailer: PHP\n" ;
   $txtheaders .= "X-Sender: ".$FromSender."\n" ;

   if ($attExists)                                        // is there an
attachment
      {

      // build header for attachment
      $attheaders  = "MIME-version: 1.0\n" ;
      $attheaders .= 'Content-type: multipart/mixed;
boundary="'.$mime_boundary.'"'."\n" ;
      $attheaders .= "Content-transfer-encoding: 7BIT\n" ;
      $attheaders .= "X-attachments: " ;
      $firstAtt = TRUE ;
      for ($i=0;$i<$attCount;$i++)
         {
         if ($File[$i] != "none")
            {
            if ($firstAtt)
               {
               $firstAtt = FALSE ;
               }
            else
               {
               $attheaders .= "," ;
               }
            $attheaders .= $FileName[$i] ;
            }
         }
      $attheaders .= ";\n\n" ;

      // build attachment itself
      $attach = "" ;
      for ($i=0;$i<$attCount;$i++)
         {
         if ($File[$i] != "none")
            {
            $attach  .= "--".$mime_boundary."\n" ;
            $attach  .= "Content-type:".$mimetype.';
name="'.$FileName[$i].'";'."\n" ;
            $attach  .= "Content-Transfer-Encoding: base64\n" ;
            $attach  .= 'Content-disposition: attachment;
filename="'.$FileName[$i].'"'."\n\n" ;
            $attach  .= TextEncode($File[$i])."\n" ;
            }
         }
      // build message itself
      $message  = "--".$mime_boundary."\n" ;
      $message .= 'Content-Type. text/plain; charset="us-ascii"'."\n\n" ;
      $message .= $MsgText."\n" ;
      }
   else                                                  // no attachment
      {
      $attheaders = "" ;
      $attach  = "" ;
      $message = $MsgText."\n" ;                         // send text only
      }
   if ($Testing == "NO")
      {
      // send email
      mail($ToReceiver, $Subject, $message.$attach, $txtheaders.$attheaders)
;
      }
   else
      {
      $mp = fopen($TestMailFile, "w") ;
      fputs($mp, "TO:".$ToReceiver.XNL) ;
      fputs($mp, "FROM:".$FromSender.XNL) ;
      fputs($mp, "SUBJECT:".$Subject.XNL) ;
      fputs($mp, $MsgText.XNL) ;
      fclose($mp) ;
      }
   }

//
// build attachment as text conforming RFC2045 (76 char per line, end with
\r\n)
//
function TextEncode ($FileName)
   {
   if (is_readable($FileName))
      {
      $fp = fopen($FileName, "r") ;
      $cont = fread($fp, filesize($FileName)) ;
      $contents = base64_encode($cont) ;
      $len = strlen($contents) ;
      $str = "" ;
      while($len > 0)
         {
         if ($len >= 76)
            {
            $str .= substr($contents,0,76).XNL ;
            $contents = substr($contents, 76) ;
            $len = $len - 76 ;
            }
         else
            {
            $str .= $contents.XNL ;
            $contents = "" ;
            $len = 0 ;
            }
         }
      fclose($fp) ;
      }
   else
      {
      $str = "File ".$FileName." not found" ;
      }
   return $str ;
   }
echo "$ToReceiver, $FromSender, $Subject, $File";
?>



php::bar PHP Wiki   -   Listenarchive