* copyright: Günther Bauer */ class sendMail { // Variable deklarieren var $emailheader = ""; var $textheader = ""; var $textboundary = ""; var $emailboundary = ""; var $charset = ""; var $betreff = ""; var $empfaenger = ""; var $attachment = array(); var $cc = array(); var $bcc = array(); // Konstruktor function sendMail() { $this->textboundary = uniqid(time()); $this->emailboundary = uniqid(time()); $this->charset = "ISO-8859-1"; } // Funktion zum setzen des CharSet´s function SetCharSet($char) { $this->charset = $char; } // Von wem die Email kommt in den Header setzen function from($name,$email) { $this->emailheader .= "From: ".$name."<".$email.">\r\n"; } // Funktion um den Adressaten anzugeben function to($to) { $this->empfaenger = $to; // echo "to: $to
"; } // Funktion zum senden einer Kopie an Cc Empfänger function cc($kopie_an_empfaenger) { $this->cc[] = $kopie_an_empfaenger; } // Funktion zum senden einer Kopie an Bcc Empfänger function bcc($kopie_an_empfaenger) { $this->bcc[] = $kopie_an_empfaenger; } // Erstellt den Header der Mime-Mail function makeMimeMail() { if(count($this->cc) > 0) { $this->emailheader .= "Cc: "; for($i=0;$icc);$i++) { if($i > 0) $this->emailheader .= ","; $this->emailheader .= $this->cc[$i]; } $this->emailheader .= "\r\n"; } if(count($this->bcc) > 0) { $this->emailheader .= "Bcc: "; for($j=0;$jbcc);$j++) { if($j > 0) $this->emailheader .= ","; $this->emailheader .= $this->bcc[$j]; } $this->emailheader .= "\r\n"; } $this->emailheader .= "MIME-Version: 1.0\r\n"; } // Funktion für den Betreff anzugeben function subject($subject) { $this->betreff = $subject; } // Textdaten in Email Header packen function text($text) { $this->textheader .= "Content-Type: multipart/alternative; boundary=\"".$this->textboundary."\"\r\n\r\n"; $this->textheader .= "--".$this->textboundary."\r\n"; $this->textheader .= "Content-Type: text/plain; charset=\"".$this->charset."\"\r\n"; $this->textheader .= "Content-Transfer-Enconding: quoted-printable\r\n\r\n"; $this->textheader .= strip_tags($text)."\r\n\r\n"; $this->textheader .= "--".$this->textboundary."\r\n"; $this->textheader .= "Content-Type: text/html; charset=\"".$this->charset."\"\r\n"; $this->textheader .= "Content-Transfer-Enconding: quoted-printable\r\n\r\n"; $this->textheader .= "".$text."\r\n\r\n"; $this->textheader .= "--".$this->textboundary."--\r\n\r\n"; } // Funktion zum anhängen für Attachments in der Email function attachment($datei) { // Überprüfen ob File Existiert if(is_file($datei)) { // Header für Attachment erzeugen $attachment_header = "--".$this->emailboundary."\r\n" ; $attachment_header .= "Content-Type: application/octet-stream;\r\n name=\"".$this->GetFileName($datei)."\"\r\n"; $attachment_header .= "Content-Transfer-Encoding: base64\r\n"; $attachment_header .= "Content-Disposition: attachment;\r\n filename=\"".$this->GetFileName($datei)."\"\r\n\r\n"; // Daten der Datei einlesen, in das BASE64 Format formatieren und auf max 72 Zeichen pro Zeile // aufteilen $file['inhalt'] = fread(fopen($datei,"rb"),filesize($datei)); $file['inhalt'] = base64_encode($file['inhalt']); $file['inhalt'] = chunk_split($file['inhalt'],72); // Attachment mit Header in der Klassenvariable speichern $this->attachment[] = $attachment_header.$file['inhalt']."\r\n"; } else { echo "Die Datei $datei existiert nicht...\r\n"; } } // Funktion die den Dateinamen aus einer Angabe mit Pfad herausfiltert function GetFileName($PathWithFile) { if(preg_match("/\//i",$PathWithFile)) { return substr(strrchr($PathWithFile,"/"),1); } else { return $PathWithFile; } } // Funktion zum erstellen des Kompletten Headers der Email // Senden der Email function send() { $this->makeMimeMail(); $header = $this->emailheader; // Überprüfen ob Attachments angehängt wurden if(count($this->attachment)>0) { $header .= "Content-Type: multipart/mixed; boundary=\"".$this->emailboundary."\"\r\n\r\n"; $header .= --$this->emailboundary."\r\n"; $header .= $this->textheader; if(count($this->attachment) > 0) $header .= implode("",$this->attachment); $header .= "--$this->emailboundary--"; } else { $header .= $this->textheader; } // Versenden der Mail mail("$this->empfaenger",$this->betreff,"",$header); $this->deletememory(); } // Diese Funktion ist nur zum testen function deletememory() { unset($this->emailheader); unset($this->textheader); unset($this->attachment); } } ?>