Mail senden Textformatierung
Patrick Hangst
- php
Hallo Community. Hab hier ein Problem. Ich sende eine Mail ab. Funtioniert auch wunderbar. Nur möchte ich, wenn die Mail bei mir ankommt, das der Name kommt, und dann eine Leerzeile(sozusagen Absatz) und dann erst die Nachricht. Ich weiß nur nicht wie. Hab schon paar Sachen versucht. Könnt ihr helfen? Danke schon mal im vorraus.
Hier der Code:
$To = "terrax_3@hotmail.com"; # Empfaenger der E-Mail
$Autoresponder = ""; # Absender der Autorespondernachricht
$Autoresponder = $To; #
$response = "response.php"; # Antwortseite
$errorpage = "errorpage.php"; # Fehlerseite
function CheckInput ($input)
{
$missing = 0;
if (! $input[Von]) { $missing ++; }
if (! $input[From]) { $missing ++; }
if (! $input[Subject]) { $missing ++; }
if (! $input[Nachricht]) { $missing ++; }
return $missing;
}
$Message = $Von \n . $Nachricht;
function SendMail ($To, $Subject , $Message, $From)
{
$valid = $To && $Subject && $Message && $From;
if (! $valid)
{
return 1;
}
$ret = mail ("$To", "$Subject", "$Message", "From: $From");
if (! $ret)
{
return 2;
}
return 0;
}
if ($Send)
{
# Der Button "Senden" wurde angeklickt.
$errors = CheckInput ($HTTP_POST_VARS);
if (! $errors)
{
# Alle Eingaben vorhanden
$ret = SendMail ($To, $Subject, $Message, $From);
if ($ret != 0)
{
# Vielleicht haben Sie vergesssen, den Empfaenger einzutragen
# sehe Variable $To am Anfang
require ("$errorpage");
}
else
{
if ($Autoresponder)
{
$Response = "Ihre Mail wurde an $To weitergeleitet.\n";
SendMail ($From, $Subject, $Response, $Autoresponder);
}
require ("$response");
}
exit ();
}
else
{
$Hinweis = "<b>Füllen Sie alle mit * gekennzeichneten Felder aus!</b><br>\n";
}
}
?>
<HTML>
<HEAD>
<TITLE>Senden Sie uns eine E-Mail</TITLE>
</HEAD>
<BODY bgcolor="#FFFFFF">
<H1>Senden Sie uns eine E-Mail</H1>
<form name="Email" method="POST">
<table width="584">
<!--DWLayoutTable-->
<tr>
<td width="175" height="21" valign="top">Name / Vorname: *</td>
<td colspan="2" rowspan="2" valign="top"><input name="Von" value=""> </td>
<td width="1"></td>
</tr>
<tr>
<td rowspan="2" valign="top">E-Mail Adresse: *</td>
<td height="1"></td>
</tr>
<tr>
<td colspan="2" rowspan="2" valign="top"><input name="From" type="text" size="40" id="From"></td>
<td height="21"></td>
</tr>
<tr>
<td rowspan="2" valign="top">Betreff: *</td>
<td height="1"></td>
</tr>
<tr>
<td colspan="2" rowspan="2" valign="top"><label>
<input type='radio' name='Subject' value='Terminanfrage'>
Terminanfrage</label></td>
<td height="18"></td>
</tr>
<tr>
<td height="1"></td>
<td></td>
</tr>
<tr>
<td height="21"></td>
<td colspan="2" valign="top"><label>
<input type='radio' name='Subject' value='Preisnachfrage'>
Preisnachfrage</label></td>
<td></td>
</tr>
<tr>
<td height="88" valign="top">Ihre Nachricht:* </td>
<td width="381" valign="top"><textarea name="Nachricht" rows="4" cols="40"><?php echo "$Nachricht\n";?></textarea></td>
<td width="1"> </td>
<td></td>
</tr>
<tr>
<td height="32"> </td>
<td> </td>
<td></td>
<td></td>
</tr>
<tr>
<td height="26"> </td>
<td valign="top"><input type="submit" name="Send" value="Senden" size="40"></td>
<td></td>
<td></td>
</tr>
<tr>
<td height="54"> </td>
<td> </td>
<td></td>
<td></td>
</tr>
</table>
</form>
<?php echo "$Hinweis\n"; ?>
<HR>
</BODY>
</HTML>
Hallo,
Nur möchte ich, wenn die Mail bei mir ankommt, das der Name kommt, und dann eine Leerzeile(sozusagen Absatz) und dann erst die Nachricht.
Dann formatiere deine Message dementsprechend:
$Message = $Von \n . $Nachricht;
$Message = $Von."\n\n".$Nachricht;
Das ist jetzt eine Perlvariante, vermutlich nutzt du aber PHP. Wichtig sind auf jeden Fall die zwei Zeilenumbrüche ("\n\n"). Ob's in PHP eleganter geht, wird man dir ggf. noch mitteilen.
Hoffe es hilft
Torsten
Hallo,
argh, klar ist es PHP (siehe Thema) ...
Naja, vielleicht hilft's dir trotzdem.
Torsten
Hallo
Naja, vielleicht hilft's dir trotzdem.
Hilft trotzdem!
TomIRL