>Die Header enthalten Multipart-Anweisungen, die aber keinen Sinn mit dem Rest des Skripts ergeben
Das war es! Vielen Dank für die Hilfe!
>Die Header enthalten Multipart-Anweisungen, die aber keinen Sinn mit dem Rest des Skripts ergeben
Das war es! Vielen Dank für die Hilfe!
> teste mal mit folgendem, ob mail() grundsätzlich funktioniert:
mail() funktioniert grundsätzlich. Ich habe eine andere Seite (die nur die E-Mail des Interessenten für eine Erinnerung an mich sendet), auf der der Befehl funktioniert:
<?php
$email = $_GET['EMAIL'];
// validate e-mail
if ((strlen($email) < 64) && filter_var($email, FILTER_VALIDATE_EMAIL))
{
$body = "\nEMAIL=" . $email;
if (mail("anonymous@gmx.de", "REMINDER", $body, "From: Shop <mail@meine-netcup-domain.com>"))
{
$template = file_get_contents("remind_template.html");
if ($template)
{
$find = array("EMAIL");
$rplc = array( $email);
$template = str_replace($find, $rplc, $template);
// deliver page
echo $template;
}
else
{
header("Location: http://www.meine-netcup-domain.com/onlineshop/php-error.html");
}
}
else
{
echo "<html>";
echo "<head>";
echo "<title>Error</title>";
echo "</head>";
echo "<body>";
echo "<p><strong>Error 404 - Mail error (Your request was NOT received!)</strong></p>";
echo "<p>Possible reasons:";
echo "<ul>";
echo " <li>Server configuration error.</li>";
echo "</ul>";
echo "</body>";
echo "</html>";
}
}
else
{
header("Location: http://www.meine-netcup-domain.com/onlineshop/schedule.html");
}
?>
Alles anzeigen
> Ist das ein Copy & Paste Fehler
So ähnlich; der Syntaxfehler ist reingerutscht, als ich anlässlich der Frage private Infos anonymisiert habe.
> schau dir mal msmtp an , das sollte dein Problem lösen
Diese kurze Antwort sagt mir leider gar nichts - ich bin Anfänger. Laut Google ist das wohl ein "SMTP-Client um Versenden von Mail", aber ich habe keine Ahnung, wie man so was einrichtet und benutzt. Ich konnte kein Hilfe-Seite von netcup dazu finden. Ich würde am liebsten weiterhin den simplen mail()-Befehl benutzten. Als Kunde würde ich erwarten, dass ein Befehl, der zu PHP gehört, auch funktioniert. Wenn das aber nicht so ist und ich eine Alternative finden muss: Hat vielleicht jemand ein mstmp-Beispiel (das mit den kleinen Webhosting-Accounts von netcup funktioniert)?
Ich habe nach dem Wechsel von Manitu zu netcup Webhosting 2000 ein Problem mit folgendem Script, das eine Bestellung als Mail an mich senden sollte (im Code unten anonymous@gmx.de): Der mail-Befehl funktioniert nicht, er gibt false zurück. Idee?
---
[...]
$body = base64_encode(
"TOTAL=" . $total . "\r\n" .
"SURCHARGE=" . $surcharge . "\r\n" .
"PP=" . $pp . "\r\n" .
"PRICE=" . $price . "\r\n" .
"ADDRESS:\r\n" . $address . "\r\n"
);
$boundary = "UHzpMtjpjtMvdtEJVP4nfCjHyWW6WJgs";
$header =
"From: mail@meine-netcup-domain.com\r\n" .
"MIME-Version: 1.0\r\n" .
"Content-Type: multipart/alternative;boundary=\"" . $boundary . "\"\r\n" . "--" . $boundary . "\r\n" .
"Content-Type: text/plain; charset=UTF-8\r\n".
"Content-Transfer-Encoding: base64\r\n";
if (mail("anonymous@gmx.de)", "ORDER", $body, $header))
{
$template = file_get_contents("report_template.html");
if ($template)
{
if ($pp < 0)
$price_fmt = sprintf("%2d.%02d", -floor(abs($price) / 100), abs($price) % 100) . "€";
else
$price_fmt = sprintf("%2d.%02d", floor(abs($price) / 100), abs($price) % 100) . "€";
$template = str_replace("@PR_FORMATTED", $price_fmt, $template);
// deliver page
echo $template;
}
else
{
header("Location: http://www.meinedomain.com/division/circuits/onlineshop/php-error.html");
}
}
else
{
echo "<html>";
echo "<head>";
echo "<title>Error</title>";
echo "</head>";
echo "<body>";
echo "<p><strong>Error 404 - Mail error (your order was NOT received!)</strong></p>";
echo "<p>Possible reasons:";
echo "<ul>";
echo " <li>Server configuration error.</li>";
echo "</ul>";
echo "</body>";
echo "</html>";
}
[...]
Alles anzeigen