ojamaney
Erfahrenes Mitglied
Hi Leute,
ich habe mir aus mehreren Tutorials und Foren ein Formular gebastelt das eMails verschicken kann. Funktioniert soweit alles gut, auch der Anhang wird mitgeschickt.
Aber, wie stelle ich es an, dass das Bild in der eMail selber angezeigt wird und nicht nur als Anhang?
Ausserdem kommt das Bild zwar an, wird aber als unbekannter Datentyp im Anhang gezeigt.
Wenn ich ....
mit angebe, wird mir der "Content-Type: image/jpeg" in die Mail geschrieben.(Auch wenn ich das in der Variablen $header speicher")
Hat das was mit den ominösen "boundary" zu tun?
Wenn ja, wofür ist das? Wo muss ich das einfügen?
Und warum bekomme ich eine Fehlermeldung wenn ich keinen Anhang mitsende?
"Warning: fread(): supplied argument is not a valid stream resource in /home/www/web424/html/emailplus/emailplus.php on line 42"
Ich dachte das hätte ich hiermit abgesichert:
Hier mal der ganze php-Code:
Ich hoffe Ihr könnt mir auf die Sprünge helfen. Aber bitte Erklärungen für Doofe, von php ist mir nur das Grundwissen bekannt.
Danke, ojamaney
Nachtrag:
Die Datei zum mitsenden liegt nicht auf dem Server. Sie soll vom PC mitgesendet werden.
Ps.:
Das Formular kann zur Zeit hier getestet werden: http://skiron.de/emailplus/emailplus.php
Vielleicht wird es dann deutlicher welche Probleme dabei entstehen.
ich habe mir aus mehreren Tutorials und Foren ein Formular gebastelt das eMails verschicken kann. Funktioniert soweit alles gut, auch der Anhang wird mitgeschickt.
Aber, wie stelle ich es an, dass das Bild in der eMail selber angezeigt wird und nicht nur als Anhang?
Ausserdem kommt das Bild zwar an, wird aber als unbekannter Datentyp im Anhang gezeigt.
Wenn ich ....
PHP:
$msg .= "\n";
$msg .= "Content-Type: ";
$msg .= $_FILES['Anhang']['type'];
$msg .= "\n";
mit angebe, wird mir der "Content-Type: image/jpeg" in die Mail geschrieben.(Auch wenn ich das in der Variablen $header speicher")
Hat das was mit den ominösen "boundary" zu tun?
Wenn ja, wofür ist das? Wo muss ich das einfügen?
Und warum bekomme ich eine Fehlermeldung wenn ich keinen Anhang mitsende?
"Warning: fread(): supplied argument is not a valid stream resource in /home/www/web424/html/emailplus/emailplus.php on line 42"
Ich dachte das hätte ich hiermit abgesichert:
PHP:
if ( $anhang !== "")....usw
Hier mal der ganze php-Code:
PHP:
<?php
if ($_REQUEST["do"])
{
// Pflichtfeldkontrolle
$error_msg = "";
if (empty($_REQUEST["to"]) || empty($_REQUEST["from"]) || empty($_REQUEST["subject"]))
{
$error_msg = "Bitte füllen Sie alle Pflichtfelder(*) aus!<br>";
}
else
{
// Adressdaten
$to = $_REQUEST["to"];
$from = $_REQUEST["from"];
$subject = $_REQUEST["subject"];
$msg = $_REQUEST["msg"];
$anhang = $_REQUEST["Anhang"];
$Trenner = md5(uniqid(time()));
// Anhang
$Dateiname = $_FILES['Anhang']['name'];
$DateinameMail = $Dateiname;
// Aufbau der Nachricht und des Anhangs
$header = "From: ".$_REQUEST["from"]."\n";
$msg .= "\r\n";
if ( $anhang !== "")
{
$msg .= "\n";
$msg .= "begin 666 $DateinameMail \r\n";
$Dateiinhalt = fread(fopen($_FILES['Anhang']['tmp_name'], "r"), $_FILES['Anhang']['size']);
$msg .= convert_uuencode($Dateiinhalt);
$msg .= "end\r\n";
}
// eMail senden
$status = mail($to, $subject, $msg, $header);
if (! $status )
{
die("Konnte die eMail nicht versenden!");
}
else
{
$status_msg = "Die eMail wurde gesendet";
}
}
}
?>
//...ab hier kommt html-code für das Formular
Ich hoffe Ihr könnt mir auf die Sprünge helfen. Aber bitte Erklärungen für Doofe, von php ist mir nur das Grundwissen bekannt.
Danke, ojamaney
Nachtrag:
Die Datei zum mitsenden liegt nicht auf dem Server. Sie soll vom PC mitgesendet werden.
Ps.:
Das Formular kann zur Zeit hier getestet werden: http://skiron.de/emailplus/emailplus.php
Vielleicht wird es dann deutlicher welche Probleme dabei entstehen.
Zuletzt bearbeitet: