Zeilenumbrüche bei mail()-Funktion

McMax

Grünschnabel
Habe bei "meiner" Homepage www.tmk-berndorf.at.tf ein Kontaktformular.

Wenn ich jetzt mit diesem Formular per mail() eine Mail versende, entsteht bei jedem Zielenumburch des Benutzers ein zweiter (aus \n wird \n\n?).

Weiß jemand, woran das liegt und was man dagegen unternehmen kann?

Ich hätte bereits daran gedacht, die Mail im HTML-Format zu versenden, weil ich hier eine Funktion in diesem Forum gefunden habe, die aus \n <br> macht. Jedoch fehlt mir die Header-Info für eine Mail im HTML-Format.

Vielen Dank im Voraus
 
Um dir dabei adequat helfen zu können, wäre es von Vorteil, wenn du uns den Code zeigen könntest, der die Eingabe im Kontaktformular verarbeitet und die E-Mail verschickt.
 
Hier der Code:

PHP:
<body>
<?php
if($Submit!="Senden")
{?>
<h1>Kontakt</h1>
<form name="form1" method="post" action="">
  <table  class="main">
    <tr>
      <td width="15%" valign="top"><div class="bez2">An:</div>        <div align="left" class="Stil2"></div></td>
      <td align="left" bgcolor="#FFFF99"><table width="200">
          <tr>
            <td align="left"><label>
              <input name="receiver" type="radio" value="webmaster.tmk-berndorf@sbg.at" checked>
            Webmaster</label></td>
          </tr>
          <tr>
            <td align="left"><label>
              <input name="receiver" type="radio" value="Franz.Hoeflmayer@gmx.at">
            Obmann</label></td>
          </tr>
      </table></td>
    </tr>
    <tr>
      <td align="left" valign="top" bgcolor="#FFFF99"><div class="bez2">Von:</div>                  <div align="center" class="Stil2"></div></td>
      <td align="left" bgcolor="#FFFF99"><input name="sender" type="text" id="sender"></td>
    </tr>
    <tr>
      <td align="left" valign="top" bgcolor="#FFFF99"><div class="bez2">Betreff:</div></td>
      <td align="left" bgcolor="#FFFF99"><input name="subject" type="text" id="subject"></td>
    </tr>
    <tr>
      <td align="left" valign="top" bgcolor="#FFFF99"><div class="bez2">Nachricht:</div></td>
      <td align="left" bgcolor="#FFFF99"><textarea name="message" cols="80" rows="20" wrap="VIRTUAL" id="message"></textarea></td>
    </tr>
    <tr>
      <td align="left" valign="top" bgcolor="#FFFF99">&nbsp;</td>
      <td align="left" bgcolor="#FFFF99"><div align="right">
        <input type="submit" name="Submit" value="Senden">
        <input name="newsletter" type="checkbox" id="newsletter" value="yes">
      Newsletter bestellen</div></td>
    </tr>
    <tr>
      <td align="left" valign="top" bgcolor="#FFFF99"><span class="Stil2"></span></td>
      <td bgcolor="#FFFF99"><div class="fussnote">
        <div align="right">Programmed by McMax</div>
      </div></td>
    </tr>
  </table>
</form>
<p class="Stil1">&nbsp;</p>
  <?php
}
else
{
 if(!isset($receiver) and !isset($subject) and !isset($message))
 {
  print "Nicht alle Felder ausgefüllt!<br><a href=\"index.php\">zurück</a>";
 }
 else
 {
  $x="TMK-Kontaktformular:".$subject;
  $y="From:".$sender;
  mail($receiver,$x,$message,$y);
  mail($sender,"Feedback gesendet:".$subject,"Folgende Nachricht wurde an die TMK-Berndorf gesendet:\n\n".$message,"From:KONTAKTFORMULAR@TMK-BERNDORF.at");
  
  if($newsletter=="yes")
  {
  $link=mysql_connect("localhost","","");
  $link=mysql_select_db("mcmax");
  $result=mysql_query("INSERT INTO `tmk-newsletter` ( `id` , `mail`) VALUES ('', '$sender');");
  mail($sender,"Newsletter-Bestellung","Sie wurden erfolgreich für den Newsletter der TMK-Berndorf eingetragen","From:NEWSLETTER@TMK-BERNDORF.at");
  }
  print "Erfolgreich versendet.<br><a href=\"index.php\">zurück</a>";
 }
}?>
</body>
</html>
 
Hallo,

ich habe von ein Kollegen diesen Skript bekommen. Ich habe gemerkt das was sehr wichtiges fehlt. Wo und wie schreibe ich diesen Befehl um mein Mailserver Daten zu definieren.

<?php

### Konfiguration ###

# Bitte passen Sie die folgenden Werte an, bevor Sie das Script benutzen!

# An welche Adresse sollen die Mails gesendet werden?
$strEmpfaenger = 'locoma12nia@web.de';

# Welche Adresse soll als Absender angegeben werden?
# (Manche Hoster lassen diese Angabe vor dem Versenden der Mail ueberschreiben)
$strFrom = '"Formmailer" <IhrAndererName@provider.xy>';

# Welchen Betreff sollen die Mails erhalten?
$strSubject = 'Feedback';

# Zu welcher Seite soll als "Danke-Seite" weitergeleitet werden?
# Wichtig: Sie muessen hier eine gueltige HTTP-Adresse angeben!
$strReturnhtml = 'http://freemail.web.de'
# Welche(s) Zeichen soll(en) zwischen dem Feldnamen und dem angegebenen Wert stehen?
$strDelimiter = ":\t";

### Ende Konfiguration ###

if($_POST)
{
$strMailtext = "";

while(list($strName,$value) = each($_POST))
{
if(is_array($value))
{
foreach($value as $value_array)
{
$strMailtext .= $strName.$strDelimiter.$value_array."\n";
}
}
else
{
$strMailtext .= $strName.$strDelimiter.$value."\n";
}
}

if(get_magic_quotes_gpc())
{
$strMailtext = stripslashes($strMailtext);
}

mail($strEmpfaenger, $strSubject, $strMailtext, "From: ".$strFrom)
or die("Die Mail konnte nicht versendet werden.");
header("Location: $strReturnhtml");
exit;
}

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de">
<head>
<title>Einfacher PHP-Formmailer</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<h1>Beispielformular</h1>
<form action="<?php print $_SERVER['PHP_SELF']; ?>" method="post">
<!-- Hier die eigentlichen Formularfelder eintragen. Die folgenden sind Beispielangaben. -->
<dl>
<dt>Ihr Name:</dt>
<dd><input type="text" name="Versender" /></dd>
<dt>Ihre E-Mail:</dt>
<dd><input type="text" name="E-Mail" /></dd>
<dt>Sie k&ouml;nnen:</dt>
<dd><input type="checkbox" name="kannwas[]" value="HTML" />HTML <input type="checkbox" name="kannwas[]" value="PHP" />PHP</dd>
<dt>Sie sind:</dt>
<dd><input type="radio" name="sexus" value="M" />Mann <input type="radio" name="sexus" value="Frau" />Frau</dd>
<dt>Sie m&ouml;gen:</dt>
<dd><select name="Browser"><option value="Opera">Opera</option><option value="Mozilla">Mozilla</option></select></dd>
<dt>Bemerkungen:</dt>
<dd><textarea name="Bemerkungen" rows="3" cols="20">Bemerkungen</textarea></dd>
</dl>
<!-- Ende der Beispielangaben -->
<p>
<input type="submit" value="Senden" />
<input type="reset" value="Zurücksetzen" />
</p>
</form>
</body>
</html>

Ich habe alles eingeben, was mein Kollege in diesen Skript von mir verlangt hatte. Ich habe gemerkt das über webmail irgend wie ich nicht meine korrekte und vollständige mail daten eingeben kann.

Gibt es eine andere möglichkeit, meine Mailserver Daten zu schreiben?
 
Zuletzt bearbeitet:
1) Das hat mit dem Thema in das du hier gepostet hast gänzlich wenig zu tun.

2) Wir sind kein Supportforum für Fredmscripte Dritter.
 
ich bin mir nicht sicher ob dir das hilft, aber bei PEAR::Mail_Mime, welches auf mail() aufsetzt, muss man angeben, wie der Zeilenvorschub aussehen soll. Kurioserweise ist das SERVER abhängig. Bei meinem Newsletter Plugin für Content*Builder muss ich den Server berücksichtigen, sonst kommen zB HTML Mails nicht korrekt an:

Auszug aus newsletterSend.inc.php
PHP:
/*
* Mail Parameter setzen
*/
if(substr(PHP_OS, 0, 3) == 'WIN') {
	$crlf="\r\n";
} else {
	$crlf="\n";
}
$nlMimeObject = new Mail_mime($crlf);

Schau dir mal die entsprechende Klasse an, was sie da gemacht haben. Vielleicht hilft es ja weiter.

Ciao, Jörg
 
Das Problem hatte ich früher auch mit den Zeilenumbrüchen. Das ganze hängt davon ab mit welchem Zeilenumbruchtyp deine Datei oder auch Template gespeichert ist. Bei mir im Dreamweaver habe ich die Möglichkeit in den Optionen zwischen "LF (Unix)", "CR (Mac)" und "CR LF (Windows)" zu wählen. Achte darauf, dass die Datei, wo der Mail-Text drinsteht im Unix-Format gespeichert ist.
 
Zurück