ubuntuusers.de

PHP mail() funktioniert auf neuem Web-Server nicht

Status: Ungelöst | Ubuntu-Version: Ubuntu 16.04 (Xenial Xerus)
Antworten |

lindner-ray

Anmeldungsdatum:
26. Januar 2017

Beiträge: Zähle...

Meine Web-Seite ist vorher auf einem 1und1 Server gelaufen und hat auch einwandfrei funktioniert. Nun habe ich einen eigenen virtuellen Host mit Ubuntu 16.04 auf dem ich Apache2, php7 und mariadb installiert habe.

Nach dem Umzug der Seite auf diesen neuen Server funktioniert nun mein Kontaktformular nicht mehr... Bei der Empfängeradresse steht natürlich nicht XXX@XXX.info, sondern die E-Mail Adresse wo es hin geht.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
<?php
// wenn das Formular Uebermittelt wurde
if(isset($_POST['abschicken'])){
            
        $vorname = $_POST['vorname'];
        $nachname = $_POST['nachname'];
        $email = $_POST['email'];
        $betreff = $_POST['betreff'];
        $wohnort = $_POST['wohnort'];
        $telefon = $_POST['telefon'];        
        $text = $_POST['text']; 
        $array = array($vorname, $nachname, $betreff, $wohnort, $telefon, $text);
        // die Uebermittelten Variablen werden zum "Text der Email" zusammengefasst
     //    if(isset($_POST['abschicken'])){
    //        $mailnachricht.=ucfirst($_POST['abschicken']).": $wert\n";
   //     }
    
   // $mailnachricht.="\nDatum/Zeit: ". date("d.m.Y H:i:s");
    // Ueberpruefen ob alle Pflichtfelder gefuellt sind
    empty($nachname) ? $err[] = "<p>- Bitte den Nachnamen angeben.</p>" : false;
    empty($vorname) ? $err[] = "<p>- Bitte den Vornamen angeben.</p>" : false;
    empty($betreff) ? $err[] = "<p>- Bitte den Betreff ausw&auml;hlen.</p>" : false;  
    empty($email) ? $err[] = "<p>- Bitte die Email-Adresse angeben.</p>" : false; 
    empty($text) ? $err[] = "<p>- Welchen Wunsch haben Sie? Bitte den Text eingeben.</p>" : false; 
    // wenn nicht, werden die Fehlermeldungen ausgegeben und das "halbgefuellte" Formular angezeigt
    if(!empty($err)) {
        echo "<p>Bitte korrigieren Sie folgende Fehler:</p>";
        foreach($err as $fehler){
            echo $fehler;
        } ?>
        <form action="index.php?page=kontaktform" method="post">
        <table width="100%" border="0" cellpadding="3" cellspacing="1">
        <tr><td width="140" align="right"><b>*Nachname:</b></td><td align="left"><input type="text" name="nachname" value="<?php echo $nachname; ?>" style="width:100%;" /></td></tr>
        <tr><td align="right"><b>*Vorname:</b></td><td align="left"><input type="text" name="vorname" value="<?php echo $vorname; ?>" style="width:100%" /></td></tr>
        <tr><td align="right"><b>*Betreff:</b></td><td align="left"><select name="betreff" style="width:100%">
          <option></option>
          <option<?php if($betreff == "Anfrage"){ echo " selected";} ?>>Anfrage</option>
          <option<?php if($betreff == "Hilfe"){ echo " selected";} ?>>Hilfe</option>
          <option<?php if($betreff == "Kritik"){ echo " selected";} ?>>Kritik</option>
          <option<?php if($betreff == "Verbesserungsvorschlag"){ echo " selected";} ?>>Verbesserungsvorschlag</option>
          <option<?php if($betreff == "Sonstiges"){ echo " selected";} ?>>Sonstiges</option>
          
            </select></td></tr>
        <tr><td align="right"><b>Wohnort:</b></td><td align="left"><input type="text" name="wohnort" value="<?php echo $wohnort; ?>" style="width:100%" /></td></tr>
        <tr><td align="right"><b>Telefon:</b></td><td align="left"><input type="text" name="telefon" value="<?php echo $telefon; ?>" style="width:100%" /></td></tr>
        <tr><td align="right"><b>*E-Mail:</b></td><td align="left"><input type="text" name="email" value="<?php echo $email; ?>" style="width:100%" /></td></tr>
        <tr><td colspan="2"><textarea rows="12"  style="width:100%" name="text"><?php echo $text; ?></textarea></td><td>&nbsp;</td></tr>
        <tr><td colspan="2" align="left" nowrap><br /><input type="reset" value="Formular l&ouml;schen" style="width:49%" />&nbsp;&nbsp;<input type="submit" name="abschicken" class="button" value="Formular absenden" style="width:49%" /></td></tr>
        </table>
        </form>
        <p align="right"><b>*Pflichtfelder</b></p>
<?php    // sind keine Fehler vorhanden, wird die Email versendet
    } else {
        $mailbetreff="Kontaktformular ".$_SERVER['HTTP_HOST']." - ".$betreff;
        $mailnachricht= $vorname." ".$nachname." aus ".$wohnort."
Telefonnummer: ".$telefon."
laesst Ihnen folgende Nachricht zukommen:
".$text;
        // HIER DIE EMPFAENGER EMAIL-ADRESSE ANPASSEN!!!
        if(mail("XXX@XXX.info", $mailbetreff, $mailnachricht, "From: $email")){
            echo "<p>Vielen Dank fuer Ihre eMail!</p>";
        } else {
            echo "<p>Ein Fehler ist aufgetreten!</p>";
        }
    }
// das Formular welches als erstes dem Besucher angezeigt wird
} else { ?>
        <form action="index.php?page=kontaktform" method="post">
        <table width="100%" border="0" cellpadding="3" cellspacing="1">
        <tr><td width="140" align="right"><b>*Nachname:</b></td><td align="left"><input type="text" name="nachname" value="" style="width:100%;" /></td></tr>
        <tr><td align="right"><b>*Vorname:</b></td><td align="left"><input type="text" name="vorname" value="" style="width:100%" /></td></tr>
        <tr><td align="right"><b>*Betreff:</b></td><td align="left"><select name="betreff" style="width:100%">
          <option></option>
          <option>Anfrage</option>
          <option>Hilfe</option>
          <option>Kritik</option>
          <option>Verbesserungsvorschlag</option>
          <option>Sonstiges</option>
          
            </select></td></tr>
        <tr><td align="right"><b>Wohnort:</b></td><td align="left"><input type="text" name="wohnort" value="" style="width:100%" /></td></tr>
        <tr><td align="right"><b>Telefon:</b></td><td align="left"><input type="text" name="telefon" value="" style="width:100%" /></td></tr>
        <tr><td align="right"><b>*E-Mail:</b></td><td align="left"><input type="text" name="email" value="" style="width:100%" /></td></tr>
        <tr><td colspan="2"><b>Ihre Nachricht f&uuml;r uns:</b></ br><textarea rows="12"  style="width:100%" name="text"></textarea></td><td>&nbsp;</td></tr>
        <tr><td colspan="2" align="left" nowrap><br /><input type="reset" value="Formular l&ouml;schen" style="width:49%" />&nbsp;&nbsp;<input type="submit" name="abschicken" value="Formular absenden" style="width:49%" /></td></tr>
        </table>
        </form>
        <p align="right"><b>*Pflichtfelder</b></p>
<?php

E-Mail kommen aber nicht an. Mach ich das ganze auf dem 1und1 Server wieder, funktioniert alles.

Ich wollte die Seite erstmal nicht groß verändern sondern einfach so zum laufen bekommen.

In der syslog konnte ich noch folgendes finden, wenn ich das Kontaktformular ausgefüllt habe: EMail kommt aber nicht an...

1 Jan 26 13:34:01 Web02 cron[1280]: (*system*sendmail) RELOAD (/etc/cron.d/sendmail)
2 Jan 26 13:34:03 Web02 apache2: [26-Jan-2017 13:34:03 Europe/Berlin] mail() on [/var/www/XXX.info/public_html/inhalt/kontaktform.php:65]: To: XXX@XXX.info -- Headers: From: julia@becker-test.de
3 Jan 26 13:34:03 Web02 sendmail[26019]: v0QCY3oB026019: from=www-data, size=251, class=0, nrcpts=1, msgid=<201701261234.v0QCY3oB026019@Web02.YYY.de>, relay=www-data@localhost
4 Jan 26 13:34:04 Web02 sm-mta[26020]: v0QCY3q0026020: from=<www-data@Web02.YYY.de>, size=491, class=0, nrcpts=1, msgid=<201701261234.v0QCY3oB026019@Web02.YYY.de>, proto=ESMTP, daemon=MTA-v4, relay=localhost [127.0.0.1]
5 Jan 26 13:34:04 Web02 sendmail[26019]: v0QCY3oB026019: to=XXX@XXX.info, ctladdr=www-data (33/33), delay=00:00:01, xdelay=00:00:01, mailer=relay, pri=30251, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (v0QCY3q0026020 Message accepted for delivery)
6 Jan 26 13:34:04 Web02 sm-mta[26023]: v0QCY3q0026020: to=<XXX@XXX.info>, ctladdr=<www-data@Web02.YYY.de> (33/33), delay=00:00:01, xdelay=00:00:00, mailer=esmtp, pri=120491, relay=mx01.kundenserver.de. [217.72.192.67], dsn=5.0.0, stat=Service unavailable
7 Jan 26 13:34:04 Web02 sm-mta[26023]: v0QCY3q0026020: v0QCY4q0026023: DSN: Service unavailable
8 Jan 26 13:34:04 Web02 sm-mta[26023]: v0QCY4q0026023: to=<www-data@Web02.YYY.de>, delay=00:00:00, xdelay=00:00:00, mailer=local, pri=30000, dsn=2.0.0, stat=Sent

Muss was in der PHP.ini angepasst werden oder brauch ich noch irgendein Modul? Kann mir jemand weiterhelfen?

sebix Team-Icon

Ehemalige

Anmeldungsdatum:
14. April 2009

Beiträge: 5584

Wie ist denn PHP bzgl des Senden von Mails konfiguriert?

Antworten |