Formmailer gibt keine Mails weiter

CreativPur

Erfahrenes Mitglied
Hi,
ich bin seit Tagen mal wieder mega am verzweifeln..
Mein Formaler gibt keine Emails raus...

Ich habe eine Seite, wo vorweg die Daten nochmals überprüft werden.
Anschließend sende ich die Daten per GET weiter..
PHP:
<form action="formmailer.php" method="GET" id="korrekt">
                <div class="hidden">
                    <input  class="form-control" type="text" name="Bewerber_id" value="<?php echo $Bewerber_id ?>">
                    <input  class="form-control" type="text" name="Bewerbung_id" value="<?php echo htmlspecialchars($_GET['Bewerbung_id']) ?>">
                    <input  class="form-control" type="text" name="Anschreiben_id" value="<?php echo htmlspecialchars($_GET['Anschreiben_id']) ?>">
                    <input  class="form-control" type="text" name="Design_id" value="<?php echo htmlspecialchars($_GET['Design_id']) ?>">
                    <input  class="form-control" type="text" name="design_bild" value="<?php echo $user['design_bild'] ?>">
                    <input  class="form-control" type="text" name="header_text" value="<?php echo $user['header_text'] ?>">
                    <input  class="form-control" type="text" name="header_bg" value="<?php echo $user['header_bg'] ?>">
                    <input  class="form-control" type="text" name="bw_als" value="<?php echo $user['bw_als'] ?>">
                    <input  class="form-control" type="text" name="bw_um" value="<?php echo $user['bw_um'] ?>">
                    <input  class="form-control" type="text" name="img_pass" value="<?php echo $user['img_pass'] ?>">
                    <input  class="form-control" type="text" name="vorname" value="<?php echo $user['vorname'] ?>">
                    <input  class="form-control" type="text" name="nachname" value="<?php echo $user['nachname'] ?>">
                    <input  class="form-control" type="text" name="email" value="<?php echo $user['email'] ?>">
                    <input  class="form-control" type="text" name="firma_an_anrede" value="<?php echo $user['firma_an_anrede'] ?>">
                    <input  class="form-control" type="text" name="firma_an_vorname" value="<?php echo $user['firma_an_vorname'] ?>">
                    <input  class="form-control" type="text" name="firma_an_nachname" value="<?php echo $user['firma_an_nachname'] ?>">
                    <input  class="form-control" type="text" name="firma_an_email" value="<?php echo $user['firma_an_email'] ?>">
                </div>
                <button type="submit" class="btn btn-success btn-xs hidden-xs">
                <strong>JA</strong>, die Bewerbungsdaten sind korrekt
                &nbsp;
                <span class="glyphicon glyphicon-thumbs-up" style="padding:3px 3px 3px 3px;"></span>
                </button>
            </form>

Wie zu sehen ist, werden diese Daten per GET an die formmailer.php gesendet
PHP:
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);

$Bewerber_id = htmlspecialchars($_GET['Bewerber_id']);
$Bewerbung_id = htmlspecialchars($_GET['Bewerbung_id']);
$Anschreiben_id = htmlspecialchars($_GET['Anschreiben_id']);
$Design_id = htmlspecialchars($_GET['Design_id']);
$design_bild = htmlspecialchars($_GET['design_bild']);
$header_text = htmlspecialchars($_GET['header_text']);
$header_bg = htmlspecialchars($_GET['header_bg']);
$bw_als = htmlspecialchars($_GET['bw_als']);
$bw_um = htmlspecialchars($_GET['bw_um']);
$img_pass = htmlspecialchars($_GET['img_pass']);
$vorname = htmlspecialchars($_GET['vorname']);
$nachname = htmlspecialchars($_GET['nachname']);
$email = htmlspecialchars($_GET['email']);
$firma_an_anrede = htmlspecialchars($_GET['firma_an_anrede']);
$firma_an_vorname = htmlspecialchars($_GET['firma_an_vorname']);
$firma_an_nachname = htmlspecialchars($_GET['firma_an_nachname']);
$firma_an_email = htmlspecialchars($_GET['firma_an_email']);

$anrede = $firma_an_anrede;
switch ($anrede)
{
   case "Frau":
      $anrede = "Sehr geehrte Frau  ". ($_GET['firma_an_vorname']) . ' ' . ($_GET['firma_an_nachname']).',';
      break;
   case "Herr":
      $anrede = "Sehr geehrter Herr  ". ($_GET['firma_an_vorname']) . ' ' . ($_GET['firma_an_nachname']).',';
      break;
   default:
      $anrede = "Sehr geehrte Damen und Herren,";
}

switch ($bw_um)
{
    case "ausbildung":
        $bw_um = "um einen Ausbildungsplatz als ".$bw_als;
        break;
    case "praktikum":
        $bw_um = "um ein Praktikumsplatz als ".$bw_als;
        break;
    case "arbeitsplatz":     
        $bw_um = "um einen Arbeitsplatz als ".$bw_als;
        break;
}


$empfaenger = $firma_an_email;
$betreff = "Bewerbung als ".$bw_als." von ".$vorname. " " .$nachname;
$from = "From:Bewerber " .$vorname." ".$nachname."  <".$email.">\n";
$from .= "Reply-To: ".$vorname." ".$nachname." <".$email.">\n";
$from .= "Content-type: text/html; charset=UTF-8\r\n";
$urlDankeSeite = 'http://www.bewerbungsemail.de/Bewerber/gesendete_bw_emails_info.php?Bewerbung_id='.$Bewerbung_id.'';
$text = "
<html>
    <head>
        <style>
        .hero {
          display: table;
          height: 100vh;
          background: url(http://www.bewerbungsemail.de/Bewerber/design_bilder/".$design_bild.".jpg) top center fixed;
          }
        .header_text {color:".$header_text.";}
        .passfoto {
            box-shadow: 10px 20px 30px grey; 
            border-radius:10px;
        }
        .bw {
            font-size:72px;
        }
        p {font-size:14px;}
        </style>
    </head>
    <body>
        <table width='100%' border='0' class='hero'>
            <tr>
                <td>
                    <br /><br />
                        <table width='100%' border='0'>
                            <tr>
                                <td width='60%'>&nbsp;
                                </td>
                                <td width='40%'>
                                    <table width='80%' border='0' align='center' style='text-align:center; bgcolor:#".$header_bg."'>
                                        <tr>
                                            <td align='center'><img src='http://www.bewerbungsemail.de/Bewerber/upload/".$img_pass."'' class='passfoto img-responsive' width='150'><br /></td>
                                        </tr>
                                        <tr>
                                            <td><h1 style='color:#".$header_text."'>Bewerbung</h1></td>
                                        </tr>
                                        <tr>
                                            <td><h3 style='color:#".$header_text.";'> als ".$bw_als."</h3></td>
                                        </tr>
                                        <tr>
                                            <td><h5 style='color:#".$header_text."'>von</h5></td>
                                        </tr>
                                        <tr>
                                            <td><h1 style='color:#".$header_text."'>".$vorname. " " .$nachname."</h1></td>
                                        </tr>
                                        <tr>
                                            <td><hr /></td>
                                        </tr>
                                        <tr>
                                            <td style='text-align:left;'><p style='color:#".$header_text."'>".$anrede."
                                            <br /><br />
                                            hiermit möchte ich mich ".$bw_um." in Ihrem Unternehmen bewerben.
                                            <br />
                                            Meine persönlichen Bewerbungsunterlagen finden Sie auf meiner Bewerbungshomepage.
                                            <br /><br />
                                            Mit freundlichem Gruß
                                            <br />
                                            <em>".$vorname. " " .$nachname."</em>
                                            </p>
                                            <br /></td>
                                        </tr>
                                        <tr>
                                            <td height='100' valign='top'>
                                            <table border='0' align='center'>
                                                  <tr>
                                                    <td style='border-radius:15px; background-color:#FFFFFF; padding:5px 8px 5px 8px; font-size:20px;'>
                                                    <a href='https://www.bewerbungsemail.de/Bewerbungen_Versendete/index.php?Bewerbung_id=".$Bewerbung_id."&Design_id=".$Design_id."&Anschreiben_id=".$Anschreiben_id.
                                                    "&Bewerber_id=".$Bewerber_id."' target='_blank'>
                                                    Zu meiner Bewerbungshomepage
                                                    </a>
                                                    </td>
                                                  </tr>
                                            </table>
                                            <br /><br /><br /><br />
                                            </td>
                                        </tr>
                                    </table>
                                </td>
                            </tr>
                        </table>
                </td>
            </tr>
        </table>
     </body>
</html>
";
mail($empfaenger, $betreff, $text, $from);
header("Location: $urlDankeSeite");
     exit;


?>

Zum Schluss wird eine DANKE-Seite korrekt ausgegeben, nur empfange ich keine Emails..
Woran kann dies liegen ?
 
Das kann viele Ursachen haben. Entwickelst du lokal mittels xampp oder schon auf einem Server? Wenn auf dem Server, ist auf diesen Mailversand eingerichtet? Was gibt
Code:
 var_dump(mail($empfaenger, $betreff, $text, $from));
aus?

Mal so am Rande. Warum übergibst du die Daten mittels GET?????? Schon alleine aus Datenschutzgründen würde ich dir hier vom GET abraten. Zudem ist das auch angreifbarer.

Hast du schon mal überlegt deine Seiten mit einem Framework ala Slim oder CakePHP zu bauen?
 
Mit Framework habe ich überhaupt keine Erfahrung.
Die Seite ist schon auf dem Server und der Maulversand ist auch eingerichtet
 
auf welche Seite muss ich das
var_dump(mail($empfaenger, $betreff, $text, $from));
einsetzen ?
Formmailer.php oder Danke.php

Ich habe es in beide Seiten eingebunden und das Resultat ist folgend ..

Notice: Undefined variable: empfaenger in /mnt/web122/e3/07/58167107/htdocs/Bewerbungsemail_neu/Bewerber/formmailer.php on line 7 Notice: Undefined variable: betreff in /mnt/web122/e3/07/58167107/htdocs/Bewerbungsemail_neu/Bewerber/formmailer.php on line 7 Notice: Undefined variable: text in /mnt/web122/e3/07/58167107/htdocs/Bewerbungsemail_neu/Bewerber/formmailer.php on line 7 Notice: Undefined variable: from in /mnt/web122/e3/07/58167107/htdocs/Bewerbungsemail_neu/Bewerber/formmailer.php on line 7 bool(false) Warning: Cannot modify header information - headers already sent by (output started at /mnt/web122/e3/07/58167107/htdocs/Bewerbungsemail_neu/Bewerber/formmailer.php:7) in /mnt/web122/e3/07/58167107/htdocs/Bewerbungsemail_neu/Bewerber/formmailer.php on line 145
 
Hast Du mal geprüft ob überhaupt mail() etwas sendet?
Wie @Kalito bereits erwähnte, setz auf POST statt auf GET.

Versuch mal folgendes:
PHP:
mail("deine@email.tld", "Dein Betreff", "Dein Text");

var_dump(mail()) -> Liefert dir immer TRUE zurück.
Versuch das mal:

PHP:
function sendNewPasswdMail($userMail, $oldpass) {   
        $this->toEmail = $this->escapeString($userMail);
        $this->fromEmail = "xxx@xxx.de";
        $this->subject = "Anforderung eines neuen Passwortes!";
        $this->message = '<table width="100%" border="0" cellspacing="0" cellpadding="0">
                                <tr>
                                    <td width="25%"><font color="#f35D14" size="2" face="Tahoma">Neues Passwort :</font></td>
                                    <td width="75%" height="22"><font color="#333333" size="-1" face="Tahoma">'.$oldpass.'</font></td>
                                </tr>
                                <tr>
                                    <td height="22" colspan="2" align="center"><font color="#333333" size="-1" face="Tahoma">'.$this->getCopy().'</font></td>
                                </tr>
                            </table>';
       
        $this->headers = "MIME-Version: 1.0\n";
        $this->headers .= "Content-type: text/html; charset=utf-8\n";
        $this->headers .= "From: ".$this->fromEmail."\n";
       
        mail($this->toEmail, $this->subject, $this->message, $this->headers);
    }

Damit versende Ich generell immer meine Mails als HTML Konstrukt :)
Dieser Auszug ist aus meiner Mailer-Klasse und versendet mit der Funktion ein neues generiertes Passwort. :)

Vielleicht hilft dir der Konstrukt dabei :)
 
Ich habe es jetzt folgend gelöst..
PHP:
$empfaenger = $firma_an_email;
$betreff = "Bewerbung als ".$bw_als;
$from = "From:$email";
$from .= "Reply-To:<".$email.">\n";
$from .= "Content-type: text/html; charset=UTF-8\r\n";
$urlDankeSeite = 'http://www.bewerbungsemail.de/Bewerber/gesendete_bw_emails_info.php?Bewerbung_id='.$Bewerbung_id.'';
$text = "  "........
Leider habe ich in der Email immer nach der Absende-Adresse (siehe Bild) dieses Reply-To:
Wie kann ich dieses entfernen ?
 

Anhänge

  • Bildschirmfoto 2017-12-07 um 16.10.06.png
    Bildschirmfoto 2017-12-07 um 16.10.06.png
    16 KB · Aufrufe: 6
Ersetz diese Zeile
PHP:
$from .= "Reply-To:<".$email.">\n";

durch
PHP:
$from .= "Reply-To:<".$email.">\r\n";

Dann sollte es korrekt sein :)
 
Dies habe ich auch schon versucht...
Leider ohne Erfolg. Das dumme "Reply-To:" steht immer noch nach der Absender-Adresse
 
Zurück