Webstatt.org - Community seit 2006 - 2012 (2024?)

PHP Mailer mit Bilderanhang

Avatar user-129
06.11.2009 15:20

hi, nach langem hin und her habe ich es geschafft, dass mein php formular 2 bilder mitschickt, aber leider kommt das bild2 zwar als jpg an lässt sich aber nicht öffnen...obwohl sogar die dateigröße stimmt.

ich weiß, dass mein php ziemlich schlecht ist...^^

<?php

$Empfaenger = "mail@b-arnold.net";

if($_REQUEST['Send'])
{
if(empty($_REQUEST['Geburtsdatum']) || empty($_REQUEST['Name']) || empty($_REQUEST['Geburtsort']) || empty($_REQUEST['Abends']) || empty($_REQUEST['Nutzungsbedingungen']) || empty($_REQUEST['Sternzeichen']) || empty($_REQUEST['Wohnort']) || empty($_REQUEST['Hobbies']) || empty($_REQUEST['Ueber']))
{
echo"<div class=\"style1\">Bitte geh <a href=\"javascript:history.back();\">zurück</a> und fülle alle Felder aus!<br/>Oder hast du vergessen den Nutzungsbedingungen zuzustimmen?!</div>";
}
else
{

$Mailbetreff = "Abizeitung - Steckbrief: ";
$Mailbetreff .= $_REQUEST['Name'];

$Trenner = md5(uniqid(time()));

$Header = "From: ".$_REQUEST['Email'];
$Header .= "\n";
$Header .= "MIME-Version: 1.0";
$Header .= "\n";
$Header .= "Content-Type: multipart/mixed; boundary=$Trenner";
$Header .= "\n\n";
$Header .= "This is a multi-part message in MIME format";
$Header .= "\n";
$Header .= "--$Trenner";
$Header .= "\n";
$Header .= "Content-Type: text/plain";
$Header .= "\n";
$Header .= "Content-Transfer-Encoding: 8bit";
$Header .= "\n\n";
$Header .= "Sie haben folgende Nachricht erhalten: \n\n";

while(list($Formularfeld, $Wert) = each($_REQUEST))
{
if($Formularfeld != "Send"zwinkern
{
$Header .= $Formularfeld.": ".$Wert."\n";
}
}

$Header .= "\nDatum/Zeit: ";
$Header .= date("d.m.Y H:i:s"zwinkern;
$Header .= "\n";
$Header .= "--$Trenner";
$Header .= "\n";
$Header .= "Content-Type: ";
$Header .= $_FILES['baby']['type'];
$Header .= "; name=";
$Header .= $_FILES['baby']['name'];
$Header .= "\n";
$Header .= "Content-Transfer-Encoding: base64";
$Header .= "\n";
$Header .= "Content-Disposition: attachment; filename=";
$Header .= $_FILES['baby']['name'];
$Header .= "\n\n";
$Dateiinhalt1 = fread(fopen($_FILES['baby']['tmp_name'], "r"zwinkern, $_FILES['baby']['size']);
$Header .= chunk_split(base64_encode($Dateiinhalt1));
$Header.= "\n";

$bild2 .= "MIME-Version: 1.0";
$bild2 .= "\n";
$bild2 .= "Content-Type: multipart/mixed; boundary=$Trenner";
$bild2 .= "\n\n";
$bild2 .= "This is a multi-part message in MIME format";
$bild2 .= "\n";
$bild2 .= "--$Trenner";
$bild2 .= "\n";
$bild2 .= "Content-Type: text/plain";
$bild2 .= "\n";
$bild2 .= "Content-Transfer-Encoding: 8bit";
$Header .= "--$Trenner";

$bild2 .= "--$Trenner--";
$bild2 .= "\n";
$bild2 .= "Content-Type: ";
$bild2 .= $_FILES['bild']['type'];
$bild2 .= "; name=";
$bild2 .= $_FILES['bild']['name'];
$bild2 .= "\n";
$bild2 .= "Content-Transfer-Encoding: base64";
$bild2 .= "\n";
$bild2 .= "Content-Disposition: attachment; filename1=";
$bild2 .= $_FILES['bild']['name'];
$bild2 .= "\n\n";
$Dateiinhalt2 = fread(fopen($_FILES['bild']['tmp_name'], "r"zwinkern, $_FILES['bild']['size']);
$bild2 .= chunk_split(base64_encode($Dateiinhalt2));
$bild2 .= "\n";
$bild2 .= "--$Trenner--";

$Header.= $bild2;

mail($Empfaenger, $Mailbetreff, "", $Header);


}
}
else
{
?>

user-303
06.11.2009 23:34

Schau mal im Mail-Quelltext, ob der letzte "Trenner" wirklich ankommt.
Auch wenn die Datei die richtige größe hat, wer weis.

Ich hatte einmal ein ähnliches Problem. Es lag daran, dass mail() nur Mails bis zu einer gewissen größe verarbeitet, danach ist es abgeschnitten.
Du könntest versuchen, es direkt per SMTP zu versenden.

Avatar user-129
07.11.2009 12:27

also wegen der größe kann es nicht sein, denn wenn ich zwei kleine bilder anhänge funktioniert es auch nicht.

hm den quelltext kann ich mit outlook anscheinend nicht richtig anschaun..

gruß
ben