Anzeige

 mail() Funktion


Status
Dieses Thema wurde gelöst! Zur Lösung gehen…
#1
Hallo liebe Leute,

ich schreibe zur Zeit ein kleines Kontaktformular.
Die Übertragung der Daten aus dem Formular funktioniert tatsächlich schon :).
Allerdings werden die Daten in der Email ohne Absätze angezeigt, das ist etwas unübersichtlich.

Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>Unbenanntes Dokument</title>

</head>


<body>

<?php

$mail = "mail@mail.de";

$daten =     $_REQUEST['name'] .

                $_REQUEST['adresse'] .

                $_REQUEST['telefon'] .

                $_REQUEST['reisetage'] .

                $_REQUEST['personenzahl'] .

                $_REQUEST['kinder'];


            

    if ($_REQUEST['abschicken']){

        {

        echo $_REQUEST['name'];

        }

        {

        echo $_REQUEST['adresse'];

        }

        {

        echo $_REQUEST['telefon'];

        }

        {

        echo $_REQUEST['reisetage'];

        }

        {

        echo $_REQUEST['personenzahl'];

        }

        {

        echo $_REQUEST['kinder'];

        }

        mail($mail, "Neue Buchungsanfrage", "$daten");

    }

    

?>

    Vielen Dank! Ihre Buchungsanfrage wurde entgegen genommen und wird in Kürze bearbeitet.

</body>

</html>
Bei php.net habe ich nun nach Möglichkeiten gesucht.
Sobald ich jedoch den Quelltext dementsprechend anpasse wird mir nachdem ich das Formular erneut ausgefüllt habe und abgeschickt habe eine leere Seite angezeigt
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Unbenanntes Dokument</title>
</head>

<body>
<?php
$mail = "mail@mail.de";
$daten =     $_REQUEST['name'] . "\r\n"
                $_REQUEST['adresse'] .
                $_REQUEST['telefon'] .
                $_REQUEST['reisetage'] .
                $_REQUEST['personenzahl'] .
                $_REQUEST['kinder'];

             
    if ($_REQUEST['abschicken']){
        {
        echo $_REQUEST['name'];
        }
        {
        echo $_REQUEST['adresse'];
        }
        {
        echo $_REQUEST['telefon'];
        }
        {
        echo $_REQUEST['reisetage'];
        }
        {
        echo $_REQUEST['personenzahl'];
        }
        {
        echo $_REQUEST['kinder'];
        }
        mail($mail, "Neue Buchungsanfrage", "$daten");
    }
     
?>
    Vielen Dank! Ihre Buchungsanfrage wurde entgegen genommen und wird in Kürze bearbeitet.
</body>
</html>
Eine interessante Alternative war auch eine HTML Seite per Mail zu verschicken, das wäre mir sogar am Liebsten.
Dann kann das alles noch attraktiver gestaltet werden.
Aber auch hier das selbe Fehlerbild

Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Unbenanntes Dokument</title>
</head>

<body>
<?php
$mail = "mail@mail.de";
$daten =     '
        <html>
        <head>
        <title>Test</title>
        </head>
     
        <body>
        <?php
        <table width="200" border="1">
        <tr>
            <td>
            </td>
            <td>
            {
            echo $_REQUEST['name'];
            }
            </td>
        </tr>
        <tr>
            <td>
            </td>
            <td>
            {
            echo $_REQUEST['adresse'];
            }
            </td>
        </tr>
        <tr>
            <td>
            </td>
            <td>
            {
            echo $_REQUEST['telefon'];
            }
            </td>
        </tr>
        <tr>
            <td>
            </td>
            <td>
            {
            echo $_REQUEST['reisetage'];
            }
            </td>
        </tr>
        <tr>
            <td>
            </td>
            <td>
            {
            echo $_REQUEST['personenanzahl'];
            }
            </td>
        </tr>
        <tr>
            <td>
            </td>
            <td>
            {
            echo $_REQUEST['kinder'];
            }
            </td>
        </tr>
        </table>
        ?>
        </body>
        </html>';

             
        $header[] = 'MIME-Version: 1.0';
        $header[] = 'Content-type: text/html; charset=iso-8859-1';
     
        mail($mail, "Neue Buchungsanfrage", "$daten", implode("\r\n", $header));
    }
     
?>
    Vielen Dank! Ihre Buchungsanfrage wurde entgegen genommen und wird in Kürze bearbeitet.
</body>
</html>
Ich vermute das ich einen Fehler bei der Variable $daten mache, aber ich komm leider nicht weiter.

Kann mir jemand helfen?

Mfg Stefan
 
Zuletzt bearbeitet:

EuroCent

KlappStuhl 2.0
#3
Hier ist mal eine Funktion die Ich mal für mich gebastelt habe :)
Hat auch bis dato funktioniert und funktioniert heute noch :D

Nur zu Faul es zu aktualisieren.
Musst es nur noch an deine Bedürfnisse anpassen :)

PHP:
<?php
public $fromMail = 'XYZ';

/**
* Versendet die Mail
**/
public function sendMailer($username, $userid, $usermail, $mail = "") {
if($mail == "") $mail = $this->fromMail;
$getMessage = '
<!DOCTYPE html>
<html lang="de">
<head>
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1" />
<base href="http://DOMAIN.TLD" />
<title>XYZ</title>
<meta name="title" content="XYZ" />
<meta name="Language" content="de" />
<link href="http://fonts.googleapis.com/css?family=Roboto:400,500&subset=latin-ext,latin" rel="stylesheet" type="text/css" />
<style type="text/css">
html {
font-family: sans-serif;
}
 
body {
margin 0;
}
 
a {
background-color: transparent;
}
 
a:active,
a:hover {
outline: 0;
}
 
a {
color: #365509;
text-decoration: none;
}
 
a:hover,
a:focus {
color: #ffffff;
text-decoration: underline;
}
 
a:focus {
outline: thin dotted;
outline: 5px auto -webkit-focus-ring-color;
outline-offset: -2px;
}
 
div#main {
width: 600px;
margin-left: auto;
margin-right: auto;
border: 1px solid #ccc;
min-width: 600px;
border-radius: 12px;
}
 
.time {
color: #FFFFFF;
}
 
.hinweis {
color: #9B2A2A;
font-weight: bold;
}
 
div#main>#header {
background-color: #93c54b;
text-align: left;
color: #365509;
padding-top: 10px;
padding-right: 10px;
padding-bottom: 10px;
padding-left: 10px;
border-top-left-radius: 10px;
border-top-right-radius: 10px;
}
 
div#main>#header>#title {
float: left;
width: 200px;
}
 
#title>a, #title>a:link {
color: #365509 !important;
text-decoration: none;
}
 
#title>a:hover , #title>a:focus {
color: #ffffff !important;
text-decoration: underline;
}
 
div#main>#header>#users {
text-align: right;
}
 
div#main>#content {
background-color: #f8f5f0;
border-radius: 10px;
margin-top: 10px;
margin-right: 10px;
margin-bottom: 10px;
margin-left: 10px;
padding-top: 10px;
padding-right: 10px;
padding-bottom: 10px;
padding-left: 10px;
color: #3e3f3a;
}
 
div#main>#footer {
background-color: #93C54B;
padding-top: 5px;
padding-right: 5px;
padding-bottom: 5px;
padding-left: 5px;
text-align: center;
border-bottom-left-radius: 10px;
border-bottom-right-radius: 10px;
}
 
div#main>#footer>p {
color: #3e3f3a;
font-weight: bold;
}
 
div#main>#footer>p>a {
color: #365509;
text-decoration: none;
}
 
div#main>#footer>p>a:hover {
color: #ffffff;
text-decoration: underline;
}
 
.btn {
display: inline-block;
margin-bottom: 0;
font-weight: normal;
text-align: center;
vertical-align: middle;
-ms-touch-action: manipulation;
touch-action: manipulation;
cursor: pointer;
background-image: none;
border: 1px solid transparent;
white-space: nowrap;
padding: 8px 60px;
font-size: 15px;
line-height: 1.42857143;
border-radius: 4px;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
 
.btn:focus,
.btn:active:focus,
.btn.active:focus,
.btn.focus,
.btn:active.focus,
.btn.active.focus {
outline: thin dotted;
outline: 5px auto -webkit-focus-ring-color;
outline-offset: -2px;
}
 
.btn:hover,
.btn:focus,
.btn.focus {
color: #ffffff;
text-decoration: none;
}
 
.btn:active,
.btn.active {
outline: 0;
background-image: none;
-webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
}
 
.btn.disabled,
.btn[disabled],
fieldset[disabled] .btn {
cursor: not-allowed;
pointer-events: none;
opacity: 0.65;
filter: alpha(opacity=65);
-webkit-box-shadow: none;
box-shadow: none;
}
 
.btn-success {
color: #ffffff;
background-color: #93c54b;
border-color: #79a736;
}
 
.btn-success:hover,
.btn-success:focus,
.btn-success.focus,
.btn-success:active,
.btn-success.active,
.open > .dropdown-toggle.btn-success {
color: #ffffff;
background-color: #79a736;
border-color: #93c54b;
}
 
.btn-success:active,
.btn-success.active,
.open > .dropdown-toggle.btn-success {
background-image: none;
}
 
.btn-success.disabled,
.btn-success[disabled],
fieldset[disabled] .btn-success,
.btn-success.disabled:hover,
.btn-success[disabled]:hover,
fieldset[disabled] .btn-success:hover,
.btn-success.disabled:focus,
.btn-success[disabled]:focus,
fieldset[disabled] .btn-success:focus,
.btn-success.disabled.focus,
.btn-success[disabled].focus,
fieldset[disabled] .btn-success.focus,
.btn-success.disabled:active,
.btn-success[disabled]:active,
fieldset[disabled] .btn-success:active,
.btn-success.disabled.active,
.btn-success[disabled].active,
fieldset[disabled] .btn-success.active {
background-color: #00bc8c;
border-color: #00bc8c;
}
 
.alert {
padding: 15px;
margin-bottom: 21px;
border: 1px solid transparent;
border-radius: 5px;
}
 
.alert-warning {
background-color: #f47c3c;
border-color: #F2671D;
color: #ffffff;
}
 
hr {
color: #d9534f;
background-color: transparent;
height: 0px;
min-height: 0px;
max-height: 0px;
border: 1px dotted #d9534f;
}
 
</style>
</head>
<body style="padding: 0; border: none; font-family: Verdana,Arial,Helvetica,sans-serif; background-color: #ffffff; margin-bottom: 0px; margin-left: auto; margin-right: auto; margin-top: 10px;">
<div id="main">
<div id="header">
<div id="title"><a href="#">XYZ</a></div>
<div id="users">XXX <span class="time">XXX</span></div>
</div>
<div id="content">
<p>Hallo</p>
<p>vielen Dank f&uuml;r Ihre Registrierung.<br />
Um Ihren Account zu Aktivieren klicken Sie auf den Button:</p>
<p><a href="XXX'.$username.'/XXX" class="btn btn-success" role="button">Jetzt Aktivieren</a></p>
<p><hr /></p>
<p>Mit freundlichen Gr&uuml;&szlig;en</p>
</div>
<div id="footer">
<p>Copyright &copy;2015 by <a href="http://gamenetworx.de">GameNetWorX</a> &middot; All Rights reserved.</p>
</div>
</div>
</body>
</html>';
 
$betreff = 'Ihre Registrierung bei XXX';
$headers = "MIME-Version: 1.0\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: {$mail}\n";
$headers .= "BCC: {$mail}\n";
 
mail($usermail, $betreff, $getMessage, $headers);
 
}
?>
 
#5
Leider bin ich immer noch nicht weiter.

Jetzt die ganze Mail Funktion nicht mehr.

Selbst wenn ich den einfachen Skript

<?
$adresse = "info@html-world.de";
$betreff = "E-Mail an HTMLWorld";
$inhalt = "Das Skript schickt eine E-Mail";
@mail($adresse,$betreff,$inhalt);
?>

verwende, bekomme ich keine Mail.

Ich habe verschiedene Email Adressen ausprobiert, alle Spam Ordner gecheckt.
Ich bekomme keine Fehlermeldung angezeigt, alles wird normal ausgeführt nur es werden keine Mails verschickt. Weder auf meinem XAMPP Server noch auf dem FTP Server.

Ich habe die Seite auch mal vom Handy aufgerufen, genau das selbe..
Das ist wirklich wie verhext :-(..
 
#6
Was sagt denn die Error Meldung wenn du an den Anfang deiner PHP Seite:
error_reporting(E_ALL);

verwendest?

Webspace Free oder gekaufter Webspace?
Soweit mir bekannt ist, gibt es manche Freehoster die mails erst bei bestimmten Rules durch lässt. :)

Und mach bitte das @ vor der mail() weg, damit unterdrückst Du eventuelle Warnings/Errors :)

Du kannst auch die beispiele wie hier verwenden um zu Prüfen: PHP: mail - Manual
 
#7
Er gibt leider kein Error Report raus

Wenn ich den die Seite mit dem Code
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>Unbenanntes Dokument</title>

</head>


<body>

<?php

error_reporting(E_ALL);

$mail = "dasd";

$daten =     $_REQUEST['name'] .

                $_REQUEST['adresse'] .

                $_REQUEST['telefon'] .

                $_REQUEST['reisetage'] .

                $_REQUEST['personenzahl'] .

                $_REQUEST['kinder'];


            

    if ($_REQUEST['abschicken']){

        {

        echo $_REQUEST['name'];

        }

        {

        echo $_REQUEST['adresse'];

        }

        {

        echo $_REQUEST['telefon'];

        }

        {

        echo $_REQUEST['reisetage'];

        }

        {

        echo $_REQUEST['personenzahl'];

        }

        {

        echo $_REQUEST['kinder'];

        }

        mail($mail, "Neue Buchungsanfrage", "$daten");

    }

    

?>

    Vielen Dank! Ihre Buchungsanfrage wurde entgegen genommen und wird in Kürze bearbeitet.

</body>

</html>
[ICODE]

aufrufe, werden die Requests aus dem Formular nacheinander angezeigt und eben der Text "Vielen Dank...." aber es wird keine Email verschickt. Es hat ja schonmal funktioniert, das begreife ja nicht.

Mit Hilfe der Seite php.net habe ich das ganze aufgebaut, aber ich gehe das nochmal durch..
 
#9
Danke, danke, danke..
Ich weiß nicht woran das nun genau gelegen hat. Mit mal kamen Emails an.
Anscheinend reagiert PHP auch auf Druckwellen, weil ich die ganze Bude zusammen gebrüllt habe :p.

Ich bin dann nochmal den Instruktionen von php.net gefolgt und habe es nun sogar geschafft eine HTML Code zu verschicken. Bin stolz wie Bolle... Geil.. Besten Dank!

Wen es interessiert und eventuell weiterhilft poste ich nochmal den Code

Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>Unbenanntes Dokument</title>

</head>


<body>



<?php

$mail = "deine@email.de";

$daten ='
<html>
<head>
  <title>Geburtstags-Erinnerungen für August</title>
</head>
<body>
  <p>Hier sind die Geburtstage im August:</p>
  <table>
    <tr>
      <th>Person</th><th>Tag</th><th>Monat</th><th>Jahr</th>
    </tr>
    <tr>
      <td>Max</td><td>3.</td><td>August</td><td>1970</td>
    </tr>
    <tr>
      <td>Moritz</td><td>17.</td><td>August</td><td>1973</td>
    </tr>
  </table>
</body>
</html>
';

// für HTML-E-Mails muss der 'Content-type'-Header gesetzt werden
$header[] = 'MIME-Version: 1.0';
$header[] = 'Content-type: text/html; charset=iso-8859-1';


           

    if ($_REQUEST['abschicken']){

        {

        echo $_REQUEST['name'];

        }

        {

        echo $_REQUEST['adresse'];

        }

        {

        echo $_REQUEST['telefon'];

        }

        {

        echo $_REQUEST['reisetage'];

        }

        {

        echo $_REQUEST['personenzahl'];

        }

        {

        echo $_REQUEST['kinder'];

        }

        mail($mail, "Neue Buchungsanfrage", "$daten", implode("\r\n", $header));

    }

   

?>

    Vielen Dank! Ihre Buchungsanfrage wurde entgegen genommen und wird in Kürze bearbeitet.

</body>

</html>
So ich mach Feierabend, besser wird es heute nicht mehr :D.

Vielen Dank
 
#10
Manchmal sieht man den Wald vor lauter Bäumen nicht :)

Sehr gut dass es doch noch zu einer Lösung kam.
Das können sicherlich andere gut gebrauchen wenn Sie auch da mal hängen bleiben.
 
#11
Leider funktioniert das wieder nicht.
Der Code ist unverändert, einmal hat es funktioniert.

Das kann ja bald nur am Host liegen.

Ich habe mehrfach den Cache geleert, den Router zwecks neuer IP Vergabe neu gestartet, Computer neu gestartet.

Selbst der Beispielcode von php.net funktioniert nicht.

Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Unbenanntes Dokument</title>
</head>

<body>

<?php
// Die Nachricht
$nachricht = "Zeile 1\r\nZeile 2\r\nZeile 3";

// Falls eine Zeile der Nachricht mehr als 70 Zeichen enthälten könnte,
// sollte wordwrap() benutzt werden
$nachricht = wordwrap($nachricht, 70, "\r\n");

// Verschicken
mail('beuth.stefan@web.de', 'Mein Betreff', $nachricht);
?>


</body>
</html>
 
#12
zur Not kann Ich Dir ZAp-Hosting oder Nitrado empfehlen für den Test :)

Es kann an der Einstellung des Webservers liegen aber das findest du meist über die Logs raus, sofern du Zugriff hast :)
 
Status
Dieses Thema wurde gelöst! Zur Lösung gehen…
Anzeige

Neue Beiträge

Anzeige