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 ::

Einführung in XHTML, CSS und Webdesign

Einführung in XHTML, CSS und Webdesign 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 06.06.2006, 16:14:22
psychophil psychophil ist offline
Anfänger
 
Registriert seit: Jun 2006
Beiträge: 3
Mailformular - Attachments beschädigt

Mein Problem:
ich habe für den Mitgliederbereich einer Website ein Mailformular erstellt, mit dem man Dateianhänge verschicken können soll;
das funktioniert auch soweit wie beabsichtigt, nur die Anhänge sind, wenn sie im Postfach landen, beschädigt.
Die Fehler im Attachment sind auch nicht wahllos verteilt:
Der erste Teil des Anhangs (etwa die ersten 650 Bytes) werden korrekt angezeigt, der Rest ist unlesbar...
Dieses Problem tritt unabhängig vom Typ der Datei auf.
Ich habe schon einiges an Zeit in diversen Foren nach Fehlerquellen gesucht, kann somit manches an möglichen Ursachen ausschließen...
Da der Fehler aber meist im Detail liegt und ich PHP schließlich nicht mit der Muttermilch aufgesogen habe, hier mein Quelltext:

PHP-Code:
extract($_POST); // Formulardaten...

    
$eol "\r\n"// PHP_OS ist WIN
    
    
$boundary md5(uniqid(time()));
    
    
$body_footer  "\n\n\n";
    
$body_footer .= "Mailformular auf Name_meiner_Site.\n";
    
$body_footer .= "".date("d.m.Y, H:i")." Uhr";

    
$headers  "From: ".$from_name." <".$from_email.">".$eol;
    
$headers .= "To: ".$to_name." <".$to_email.">".$eol;
    if(!empty(
$cc_email)) {$headers .= "Cc: ".$cc_name." <".$cc_email.">".$eol;}
    if(!empty(
$bcc_email)) {$headers .= "Bcc: ".$bcc_name." <".$bcc_email.">".$eol;}
    
$headers .= "Subject: ".$subject.$eol;
    
$headers .= "Date: ".date("r").$eol;
    
$headers .= "Message-ID: <".md5(uniqid($from_name.$to_name))."@DNS-Name_des_SMTP-Servers>".$eol;
    
$headers .= "Reply-To: ".$from_name." <".$from_email.">".$eol;
    
$headers .= "Return-Path: ".$from_name." <".$from_email.">".$eol;
    
$headers .= "X-Sender: ".$from_name." <".$from_email.">".$eol;
    
$headers .= "X-Mailer: PHP v".phpversion().$eol;
    if(!empty(
$attachment)) {
    
$headers .= "X-Attachments: \"".$_FILES["attachment"]["name"]."\"".$eol;
    }
    
    
$headers .= "MIME-Version: 1.0".$eol;
    
$headers .= "Content-Type: multipart/mixed; boundary=\"".$boundary."\"".$eol;
    
    
$message  "";
    
    if(!empty(
$attachment)) {
    
$message .= "--".$boundary.$eol;
    
$message .= "Content-Type: ".$_FILES["attachment"]["type"]."; name=\"".$_FILES["attachment"]["name"]."\"".$eol;
    
$message .= "Content-Transfer-Encoding: base64".$eol;
    
$message .= "Content-Disposition: attachment; filename=\"".$_FILES["attachment"]["name"]."\"".$eol.$eol;
    
$message .= encode_attachment($_FILES["attachment"]["tmp_name"]).$eol.$eol;
    }
    
    
$message .= "--".$boundary.$eol;
    
$message .= "Content-Type: text/plain; charset=\"iso-8859-1\"".$eol;
    
$message .= "Content-Transfer-Encoding: 8bit".$eol.$eol;
    
$message .= "".stripslashes($body)."";
    
$message .= "".$body_footer.$eol.$eol;
    
    
$message .= "--".$boundary."--".$eol.$eol;

    
$mail mail("".$to_email."""".$subject."""".$message."""".$headers."");
    
    if(
$mail == "true") {
    echo 
"Deine E-Mail wurde erfolgreich versandt.\n";
    } else {
    echo 
"Beim Versenden Deiner E-Mail trat ein Problem auf.\n";
    } 
...und der Code zum Enkodieren des Anhangs:

PHP-Code:
function encode_attachment($att) {
  
$fp fopen($att"rb");
  
$data fread($fpfilesize($att));
  
fclose($fp);
  
$data chunk_split(base64_encode($data));
  return 
$data;

Und noch ein paar Bytes aus der Dummy-Datei, wie sie aussah, nachdem sie als Attachment verschickt wurde:

- die ersten 623 Bytes korrekterweise:
Lorem ipsum dolor sit amet, consectetuer adipis...

- danach:
XÙ[˜\ÈXØÝ[\Ø[ˆ[H™XÈYÝ[KˆÜ™[H\Ý[HÛ܈Ú][Y] ÛÛœÙXÝ...


für Hinweise jetzt schon mal vielen Dank!


P.S.:
Ja klar, natürlich könnte ich Klassen wie HTML Mime Mail oder PHPMailer benutzen...
Aber ich code eben aus Spaß; und ein Problem, an dem ich so lange hänge, weckt eben meinen Ehrgeiz...

Geändert von psychophil (06.06.2006 um 16:27:36 Uhr)
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
attachments von emails auswerten slippmann PHP Grundlagen 2 02.06.2004 23:54:52
Frage zu mail() Attachments Dan PHP Grundlagen 4 26.08.2003 22:12:13
Mailformular mit Abfrage... Stella PHP für Fortgeschrittene und Experten 7 21.05.2003 17:12:18
Mailformular PHP Pixelmaster PHP für Fortgeschrittene und Experten 1 27.04.2003 17:43:34
Warum geht das Mailformular nicht?? lululu PHP für Fortgeschrittene und Experten 11 19.10.2002 19:25:37


Alle Zeitangaben in WEZ +2. Es ist jetzt 11:11:53 Uhr.


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


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