Mail-Formular
andreas Hartmann
- php
0 Tom0 Tom0 andreas hartmann0 Tom
0 wahsaga
0 andreas hartmann
Hallo,
Ich möchte eine Email wegschicken, was auch einwandfrei funktioniert.
(hab von selfphp den Code...)
leider wird die ausgabe in der email ziemlich unübersichtlich, da alles einfach untereinander geschrieben wird. Ich möchte ab und zu mal einen doppelten absatz einbauen, weiß aber nicht was für eine abfrage ich schreiben soll.....
in der email steht z.B.
Name1: Bla bla
Vorname1: Bal bla
Name2: Bla Bla
Vorname2: sdfsd
Name3: Bla bla
Vorname3: sdfsdf
Name4: Bla Bla
Vorname4: sdsdfs
jetzt möchte ich immer vor Name einen doppelten absatz...
Hier der Code:
<?php
$delimiter = $_POST["delimiter"];
$mailto = $_POST["mailto"];
$returnhtml = $_POST["return"];
$subject = $_POST["subject"];
$mailtext = "";
while(list($name,$value) = each($_POST))
{
if($name != "mailto" && $name != "return" && $name != "subject" && $name != "delimiter")
{
if(is_array($value))
{
foreach($value as $value_array)
{
$mailtext .= $name.$delimiter.$value_array."\n";
}
}
else
{
$mailtext .= $name.$delimiter.$value."\n";
}
}
}
if(get_magic_quotes_gpc()) $mailtext = stripslashes($mailtext);
mail($mailto,$subject,$mailtext) or die("Die Mail konnte nicht versendet werden.");
//header("Location: $returnhtml");
?>
Ach ja, wie leite ich die seite nach vollenden des abschickens weiter, damit ich dem benutzer signalisieren kann, das die email weggeschickt wurde, da der vorgegebene header...... bei mir einen fehler verursacht....
Vielen dank im vorraus.
Andreas
Hello,
bau Dir deinen Message-Body entsprechend zusammen.
Eine Zeilenschaltung in der eMail wird immer durch \n vorgenommen. Vor einem Absatz stenen dann eben zwei \n.
mail($mailto,$subject,$mailtext) or die("Die Mail konnte nicht versendet werden.");
//header("Location: $returnhtml");
Ach ja, wie leite ich die seite nach vollenden des abschickens weiter, damit ich dem benutzer signalisieren kann, das die email weggeschickt wurde, da der vorgegebene header...... bei mir einen fehler verursacht....
Gibt es denn eine Fehlermeldung, wenn Du den Header sendest?
Sinnvoller wäre es wahrscheinlich, die Seite einfach per
readfile($returnhtml);
ausgeben zu lassen. Es muss sich aber um eine vollständige Seite handeln. Auerdem wird die Seite geparst, wenn es sich um eine php-Seite handelt.
Liebe Grüße aus http://www.braunschweig.de
Tom
Hello,
Sinnvoller wäre es wahrscheinlich, die Seite einfach per
readfile($returnhtml);
ausgeben zu lassen. Es muss sich aber um eine vollständige Seite handeln. Auerdem wird die Seite geparst, wenn es sich um eine php-Seite handelt.
Das mit dem Parsen bei readfile() nehme ich nochmal zurück. War mir ganz sicher, dass sich die Funktion neulich so merkwürdig verhalten hat, als ich sie für ein Download-Script benutzt habe. Habe das eben aber nochmal überprüft, und nun tut sich da nichts unerwünschtes. Vielleicht liegts an der PHP-Version (4.3.1)? Die besagte war (4.2.2).
Liebe Grüße aus http://www.braunschweig.de
Tom
Hello,
Sinnvoller wäre es wahrscheinlich, die Seite einfach per
readfile($returnhtml);
wenn ich das eingebe, funktioniert die weiterleitung aber nicht...
ich denke mal das ich noch irgend einen wert übergeben muß, weiß es aber nicht, da ich mich mit php nicht auskenne.....
im formular habe ich jedenfalls den eintrag:
<input type="hidden" name="return" value="http://www.google.de">
das würde doch bedeuten, das er mir nach vollendung auf google springen sollte.....
oder muß ich auf der php-seite noch was verändern....
gruß andy
Hello,
Sinnvoller wäre es wahrscheinlich, die Seite einfach per
readfile($returnhtml);
wenn ich das eingebe, funktioniert die weiterleitung aber nicht...
Entweder Umleitung senden, oder direkte HTML-Ausgabe. Beides geht nicht.
Allerdings kann man die direkte Ausgabe noch NACH dem Location-Header anbringen für den Fall, dass der Browser 301 oder 302 nicht mag.
Liebe Grüße aus http://www.braunschweig.de
Tom
Entweder Umleitung senden, oder direkte HTML-Ausgabe. Beides geht nicht.
Allerdings kann man die direkte Ausgabe noch NACH dem Location-Header anbringen für den Fall, dass der Browser 301 oder 302 nicht mag.
kannst du mir ein beispiel sagen, mit dem ich einfach nur den auf den Monitor ausgebe, das die email gesendet wurde??
gruß andreas
hi,
kannst du mir ein beispiel sagen, mit dem ich einfach nur den auf den Monitor ausgebe, das die email gesendet wurde??
echo "das die email gesendet wurde?";
gruss,
wahsaga
hi,
Eine Zeilenschaltung in der eMail wird immer durch \n vorgenommen. Vor einem Absatz stenen dann eben zwei \n.
AFAIK sollte man aus kompabilitätsgründen für die zeilenschaltung in emails immer \r\n verwenden, statt nur \n.
gruss,
wahsaga
ok, habe mich wohl ein bißchen unverständlich ausgedrückt....
Hallo,
Ich möchte eine Email wegschicken, was auch einwandfrei funktioniert.
(hab von selfphp den Code...)leider wird die ausgabe in der email ziemlich unübersichtlich, da alles einfach untereinander geschrieben wird. Ich möchte ab und zu mal einen doppelten absatz einbauen, weiß aber nicht was für eine abfrage ich schreiben soll.....
in der email steht z.B.
Name1: Bla bla
Vorname1: Bal bla
Name2: Bla Bla
Vorname2: sdfsd
Name3: Bla bla
Vorname3: sdfsdf
Name4: Bla Bla
Vorname4: sdsdfsjetzt möchte ich immer vor Name einen doppelten absatz...
Hier der Code:
<?php
$delimiter = $_POST["delimiter"];
$mailto = $_POST["mailto"];
$returnhtml = $_POST["return"];
$subject = $_POST["subject"];$mailtext = "";
while(list($name,$value) = each($_POST))
{
if($name != "mailto" && $name != "return" && $name != "subject" && $name != "delimiter")
{
if(is_array($value))
{
foreach($value as $value_array)
{
$mailtext .= $name.$delimiter.$value_array."\n";
}
}
else
{
wenn ich hier schreibe:
If($name="Name")
{
$mailtext.= "\n"
}
dann wird der inhalt von $name durch Name ersetzt... (dabei will ich doch nur überprüfen, was in $name drin steht....
(habs mal so geschrieben, wie ich es in VB schreiben würde...)
$mailtext .= $name.$delimiter.$value."\n";
}
}
}if(get_magic_quotes_gpc()) $mailtext = stripslashes($mailtext);
mail($mailto,$subject,$mailtext) or die("Die Mail konnte nicht versendet werden.");
//header("Location: $returnhtml");
?>
Ach ja, wie leite ich die seite nach vollenden des abschickens weiter, damit ich dem benutzer signalisieren kann, das die email weggeschickt wurde, da der vorgegebene header...... bei mir einen fehler verursacht....
Vielen dank im vorraus.
Andreas