php --> e-mail beantwoording lukt niet

Status
Niet open voor verdere reacties.

sasvdpasch

Gebruiker
Lid geworden
14 jan 2010
Berichten
72
Hai,

Ik heb 2 php pagina's die werken. (http://www.balivakantievilla.nl/reserveren.php en http://www.balivakantievilla.nl/contact.php)

het probleem zit hem in het ontvangen van deze e-mails. Ik kan niet replyen namelijk. Zou iemand in de php kunnen kijken en vertellen hoe dit wel kan? Zodat ik in outlook alleen op beantwoorden kan drukken ipv e-mail kopieren en een nieuw bericht maken?

Want deze mail ontvang ik dan:

Van: BaliVakantieVilla Reservering [-@mars.digitpaint.nl]
Aan: info@balivakantievilla.nl
onderwerp: Reserverings aanvraag van balivakantievilla.nl

Dit is een bericht van BaliVakantieVilla.nl Reserverings Formulier,

Naam: ...............
E-Mail Adres: .........................jos@hotmail.com
Telefoonnummer: .......................
________________________________________
Aankomst
Dag: 4
Maand: Augustus
Jaar: 2010
________________________________________
Vertrek
Dag: 21
Maand: Augustus
Jaar: 2010
________________________________________
Aantal Personen: 5
Guesthouse: nee
Bericht:
Hallo,
Is het huis in deze periode vrij?
Alvast bedankt,

Jos

En als ik op beantwoorden klik, dan pakt hij dit email adres: [-@mars.digitpaint.nl] (dat is geen email adres namelijk) want het moet zijn: jos@hotmail.com


Mijn php ziet er zo uit van reserveren:

PHP:
<div id="mainContent2">
      <?php
$config['email'] = "info@balivakantievilla.nl"; // email waar mailtjes naar toe moeten worden gestuurd via formulier
$config['onderwerp'] = "Reserverings aanvraag van balivakantievilla.nl"; // onderwerp van het mailtje
 
function checkmail($mail) {
    // explode het e-mail adres op een @
    $email_host = explode("@", $mail);
    // pak alles na de @
    $email_host = $email_host['1'];
    // zet een var met de (eventuele) DNS van de domein
    $email_resolved = gethostbyname($email_host);
 
    // kijk of er een DNS aan zit en of alles voor en na het e-mail adres klopt
    if ($email_resolved != $email_host && eregi("^[0-9a-z]([-_.~]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$",$mail))
        $valid = 1;
 
    // wanneer het geldig is, is $valid = 1, zo niet, dan geeft hij geen result (NULL)
    return $valid;
}
 
if($_SERVER['REQUEST_METHOD'] == "POST") {
    // verstuurd
 
    print "<h1>Reservering</h1>\n";
 
    $fouten = array();
   
        if(empty($_POST['voornaam'])) {
            $fouten[] = "U heeft geen voornaam opgegeven.";
        }
        if(empty($_POST['achternaam'])) {
            $fouten[] = "U heeft geen achternaam opgegeven.";
        }
        if(empty($_POST['email'])) {
            $fouten[] = "U heeft geen email adres opgegeven.";
        }elseif(!checkmail($_POST['email']) == 1) {
            $fouten[] = "Uw email adres is niet geldig, geef a.u.b. een ander adres op.";
        }
        if(empty($_POST['telefoonnummer'])) {
            $fouten[] = "U heeft geen telefoonnummer opgegeven";
        }
        if(empty($_POST['adres'])) {
            $fouten[] = "U heeft geen adres opgegeven";
        }
        if(empty($_POST['woonplaats'])) {
            $fouten[] = "U heeft geen woonplaats opgegeven";
        }
       
        // aankomst
        if(empty($_POST['adag'])) {
            $fouten[] = "U heeft geen aankomst dag opgegeven";
        }
        if(empty($_POST['amaand'])) {
            $fouten[] = "U heeft geen aankomst maand opgegeven";
        }
        if(empty($_POST['ajaar'])) {
            $fouten[] = "U heeft geen aankomst jaar opgegeven";
        }
        
        // vertrek
        if(empty($_POST['vdag'])) {
            $fouten[] = "U heeft geen vertrek dag opgegeven";
        }
        if(empty($_POST['vmaand'])) {
            $fouten[] = "U heeft geen vertrek maand opgegeven";
        }
        if(empty($_POST['vjaar'])) {
            $fouten[] = "U heeft geen vertrek jaar opgegeven";
        }
        
        if(empty($_POST['aantal'])) {
            $fouten[] = "U heeft geen aantal personen opgegeven";
        }
        if(empty($_POST['guesthouse'])) {
            $fouten[] = "U heeft geen guesthouse opgegeven";
        }
        if(empty($_POST['bericht'])) {
            $fouten[] = "U heeft geen bericht opgegeven";
        }
 
        if(count($fouten) > 0) {
            // over de 0 dus een fout
           
            print "De volgende fout(en) zijn gevonden:<br>";
           
            foreach($fouten as $fout) {
                print $fout."<br>\n";
            }
           
            print "<br>\n       Ga terug en los deze fout(en) op";
           
        }else{
            // geen fout email verzenden   
           
                $bHTML = TRUE;
                $header  = "MIME-Version: 1.0\n";
                $header .= "From: BaliVakantieVilla Reservering (".ucfirst($_POST['voornaam'])." ".ucfirst($_POST['achternaam']).") <->\n";
                $header .= "Reply-to: No Reply <->\n";
                $header .= ($bHTML) ? "Content-Type: text/html; charset=iso-8859-1\n" : "Content-Type: text/plain; charset=iso-8859-1\n";
                                         
 
                $bericht = "
               <style type=\"text/css\">
                   body{font-family:verdana;font-size:11px;color:#000000;}
                   a{color: #000000;font-family: Trebuchet MS;font-size: 11px;}
                   a:hover{font-family: Trebuchet MS;font-size: 12px;}
                   hr{color: #FFFFFF;height: 0;}
               </style>
 
                   Dit is een bericht van BaliVakantieVilla.nl Reserverings Formulier,<br><br>
                   Naam: ".ucfirst($_POST['voornaam'])." ".ucfirst($_POST['achternaam'])."<br>
                    E-Mail Adres: ".$_POST['email']."<br>
                    Telefoonnummer: ".$_POST['telefoonnummer']."<br>
                    
                    <hr>
                    
                    <h1>Aankomst</h1>
                    Dag: ".$_POST['adag']."<br>
                    Maand: ".$_POST['amaand']."<br>
                    Jaar: ".$_POST['ajaar']."<br>
                    
                    <hr>
                    
                    <h1>Vertrek</h1>
                    Dag: ".$_POST['vdag']."<br>
                    Maand: ".$_POST['vmaand']."<br>
                    Jaar: ".$_POST['vjaar']."<br>
                    
                    <hr>
                    
                    Aantal Personen: ".$_POST['aantal']."<br>
                    Guesthouse: ".$_POST['guesthouse']."<br>
                    
                    Bericht: <br>
                    ".nl2br($_POST['bericht']);
                                   
                mail(trim($config['email']),$config['onderwerp'],$bericht,$header);
 
            print "
                    Bedankt voor uw reservering.<br>
                    Wij nemen zo spoedig mogelijk contact met u op!<br>\n
                    Om naar index te gaan klik <a href=\"./\">hier</a>";
           
        }
 
}else{
    // nog niet verstuurd
?>
<h1>Reserveren</h1>
<h2>Bent u geinteresseerd in een verblijf in Bali Vakantie Villa, dan kunt u dat via onderstaand formulier kenbaar maken!
Na de ontvangst van uw reservering nemen wij zo spoedig mogelijk contact met u op!</h2>
        <form method="post" action="" >
<table>
  <tr><td valign="top" width="140">
  Voornaam:*
  </td>
  <td>
  <input type="text" name="voornaam" class="veld" size="35" />
  </td>
  </tr>
  <tr>
  <td valign="top" width="140">
  Achternaam:*
  </td>
  <td>
  <input type="text" name="achternaam" class="veld" size="35" />
  </td>
  </tr>
  <tr>
  <td valign="top">
  E-mail:*
  </td>
  <td>
  <input type="text" name="email" class="veld" size="35" />
  </td>
  </tr>
  <tr>
  <td valign="top">
  Telefoonnummer:*
  </td>
  <td>
  <input type="text" name="telefoonnummer" class="veld" size="35" />
  </td>
  </tr>
  <tr>
  <td valign="top">
  Adres:
  </td>
  <td><input type="text" name="adres" class="veld" size="35" />
  </td>
  </tr>
  <tr>
  <td valign="top">
  Woonplaats:
  </td>
  <td>
  <input type="text" name="woonplaats" class="veld" size="35" />
  </td>
  </tr>
  <tr>
  <td valign="top">
  Aankomstdatum:
  </td>
  <td>
  <select name="adag" id="adag">
        <option value="Dag">Dag</option>
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
        <option value="5">5</option>
        <option value="6">6</option>
        <option value="7">7</option>
        <option value="8">8</option>
        <option value="9">9</option>
        <option value="10">10</option>
        <option value="11">11</option>
        <option value="12">12</option>
        <option value="13">13</option>
        <option value="14">14</option>
        <option value="15">15</option>
        <option value="16">16</option>
        <option value="17">17</option>
        <option value="18">18</option>
        <option value="19">19</option>
        <option value="20">20</option>
        <option value="21">21</option>
        <option value="22">22</option>
        <option value="23">23</option>
        <option value="24">24</option>
        <option value="25">25</option>
        <option value="26">26</option>
        <option value="27">27</option>
        <option value="28">28</option>
        <option value="29">29</option>
        <option value="30">30</option>
        <option value="31">31</option>
    </select>
<select name="amaand" id="amaand">
        <option value="Maand">Maand</option>
        <option value="Januari">Januari</option>
        <option value="Februari">Februari</option>
        <option value="Maart">Maart</option>
        <option value="April">April</option>
        <option value="Mei">Mei</option>
        <option value="Juni">Juni</option>
        <option value="Juli">Juli</option>
        <option value="Augustus">Augustus</option>
        <option value="September">September</option>
        <option value="Oktober">Oktober</option>
        <option value="November">November</option>
        <option value="December">December</option>
    </select>
<select name="ajaar" id="ajaar">
        <option value="Jaar">Jaar</option>
        <option value="2009">2009</option>
        <option value="2010">2010</option>
        <option value="2011">2011</option>
        <option value="2012">2012</option>
    </select>
  </td>
  </tr>
  <tr>
  <td valign="top">
  Vertrekdatum:
  </td>
  <td>
  <select name="vdag" id="vdag">
        <option value="Dag">Dag</option>
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
        <option value="5">5</option>
        <option value="6">6</option>
        <option value="7">7</option>
        <option value="8">8</option>
        <option value="9">9</option>
        <option value="10">10</option>
        <option value="11">11</option>
        <option value="12">12</option>
        <option value="13">13</option>
        <option value="14">14</option>
        <option value="15">15</option>
        <option value="16">16</option>
        <option value="17">17</option>
        <option value="18">18</option>
        <option value="19">19</option>
        <option value="20">20</option>
        <option value="21">21</option>
        <option value="22">22</option>
        <option value="23">23</option>
        <option value="24">24</option>
        <option value="25">25</option>
        <option value="26">26</option>
        <option value="27">27</option>
        <option value="28">28</option>
        <option value="29">29</option>
        <option value="30">30</option>
        <option value="31">31</option>
    </select>
<select name="vmaand" id="vmaand">
        <option value="Maand">Maand</option>
        <option value="Januari">Januari</option>
        <option value="Februari">Februari</option>
        <option value="Maart">Maart</option>
        <option value="April">April</option>
        <option value="Mei">Mei</option>
        <option value="Juni">Juni</option>
        <option value="Juli">Juli</option>
        <option value="Augustus">Augustus</option>
        <option value="September">September</option>
        <option value="Oktober">Oktober</option>
        <option value="November">November</option>
        <option value="December">December</option>
    </select>
<select name="vjaar" id="vjaar">
        <option value="Jaar">Jaar</option>
        <option value="2009">2009</option>
        <option value="2010">2010</option>
        <option value="2011">2011</option>
        <option value="2012">2012</option>
    </select>
  </td>
  </tr>
  <tr><td valign="top">
  Aantal personen:
  </td>
  <td>
  <select name="aantal" id="aantal">
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
        <option value="5">5</option>
        <option value="6">6</option>
        <option value="7">7</option>
        <option value="8">8</option>
    </select>
Guesthouse (max 2 pers.):
<select name="guesthouse" id="guesthouse">
        <option value="nee">nee</option>
        <option value="ja">ja</option>
    </select>
    </td>
    </tr>
  <tr>
  <td valign="top">
  Bericht:</td>
  <td>
  <textarea name="bericht" rows="8" cols="50"></textarea>
  </td>
  </tr>
  <tr><td valign="top">
  </td>
  <td>
  <input type="submit" value="Verzenden" name="verstuur" />
  </td>
  </tr>
</table>
</form>
<?php
}
?>

Mijn php ziet er zo uit van contact:

PHP:
   <div id="mainContent2">
<?php
 
$config['email'] = "info@balivakantievilla.nl"; // email waar mailtjes naar toe moeten worden gestuurd via formulier
$config['onderwerp'] = "ContactFormulier van balivakantievilla.nl"; // onderwerp van het mailtje
 
function checkmail($mail) {
    // explode het e-mail adres op een @
    $email_host = explode("@", $mail);
    // pak alles na de @
    $email_host = $email_host['1'];
    // zet een var met de (eventuele) DNS van de domein
    $email_resolved = gethostbyname($email_host);
 
    // kijk of er een DNS aan zit en of alles voor en na het e-mail adres klopt
    if ($email_resolved != $email_host && eregi("^[0-9a-z]([-_.~]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$",$mail))
        $valid = 1;
 
    // wanneer het geldig is, is $valid = 1, zo niet, dan geeft hij geen result (NULL)
    return $valid;
}
 
if($_SERVER['REQUEST_METHOD'] == "POST") {
    // verstuurd
 
    $fouten = array();
   
        if(empty($_POST['naam'])) {
            $fouten[] = "U heeft geen naam ingevuld.";
        }
        if(empty($_POST['email'])) {
            $fouten[] = "U heeft geen email adres opgegeven.";
        }elseif(!checkmail($_POST['email']) == 1) {
            $fouten[] = "Uw email adres is niet geldig, geef a.u.b. een ander adres op.";
        }
        if(empty($_POST['bericht'])) {
            $fouten[] = "U bent uw bericht vergeten in te typen.";
        }
       
        if(count($fouten) > 0) {
            // over de 0 dus een fout
           
            print "De volgende fout(en) zijn gevonden:<br>";
           
            foreach($fouten as $fout) {
                print $fout."<br>\n";
            }
           
            print "<br>\n       Ga terug en los deze fout(en) op";
           
        }else{
            // geen fout email verzenden   
           
                $bHTML = TRUE;
                $header  = "MIME-Version: 1.0\n";
                $header .= "From: BaliVakantieVilla ContactFormulier <->\n";
                $header .= "Reply-to: No Reply <->\n";
                $header .= ($bHTML) ? "Content-Type: text/html; charset=iso-8859-1\n" : "Content-Type: text/plain; charset=iso-8859-1\n";
                                         
 
                $bericht = "
               <style type=\"text/css\">
                   body{font-family:verdana;font-size:11px;color:#000000;}
                   a{color: #000000;font-family: Trebuchet MS;font-size: 11px;}
                   a:hover{font-family: Trebuchet MS;font-size: 12px;}
                   hr{color: #FFFFFF;height: 0;}
               </style>
 
                   Dit is een bericht van BaliVakantieVilla.nl Contact Formulier,<br><br>
                   Naam: ".$_POST['naam']."<br>
                   E-Mail Adres: ".$_POST['email']."<br>
                   Bericht: <br>
                   ".nl2br($_POST['bericht']);
                                   
                mail(trim($config['email']),$config['onderwerp'],$bericht,$header);
 
            print "
                   Uw bericht is verzonden er word zo spoedig mogelijk contact met u op genomen!<br>\n
                   Om naar index te gaan klik <a href=\"./\">hier</a>";
           
        }
 
}else{
    // nog niet verstuurd
?>
    <h1>Contact</h1>
        <h2>Voor vragen of opmerkingen kunt u via onderstaand formulier contact met ons opnemen. Wij doen ons best u zo spoedig mogelijk te antwoorden.</h2>
       
<form method="post" action="">
			<table>
				<tr>
					<td width="100%">
						Naam:
					</td>
					<td width="100%">
						<input type="text" name="naam" />
					</td>
				</tr>
				<tr>
					<td>
						Email:
					</td>
					<td>
						<input type="text" name="email" />
					</td>
				</tr>
				<tr>
					<td>
						Bericht:
					</td>
					<td>
						<textarea name="bericht" rows="8" cols="50"></textarea>
					</td>
				</tr>
				<tr>
					<th colspan="2">
						<input type="submit" value="Verzenden" name="verstuur" />
					</th>
				</tr>
			</table>
		</form>
<p>U kunt ons ook per e-mail bereiken op <a href="mailto:info@balivakantievilla.nl">info@balivakantievilla.nl</a></p><p>of bellen naar +31(0)6-11012000</p>  
      <?php
}
?>

Hopelijk kan iemand me helpen!
 
Je gebruikt de verkeerde variabelen in de header. Probeer
PHP:
$header .= "From: BaliVakantieVilla Reservering (".ucfirst($_POST['voornaam'])." ".ucfirst($_POST['achternaam']).") <->\n";
eens te vervangen door
PHP:
$header .= "From: BaliVakantieVilla Reservering <".$_POST['email'].">\n";
En doe hetzelfde voor de contact pagina. Verder staat er een dubieuze no-reply header die volgens mij geen nut heeft bij deze code.

(controleer ook even hoe je op de juiste manier de headers van elkaar moet scheiden, want volgens mij moet je niet \n maar \r\n gebruiken)
 
Je gebruikt de verkeerde variabelen in de header. Probeer
PHP:
$header .= "From: BaliVakantieVilla Reservering (".ucfirst($_POST['voornaam'])." ".ucfirst($_POST['achternaam']).") <->\n";
eens te vervangen door
PHP:
$header .= "From: BaliVakantieVilla Reservering <".$_POST['email'].">\n";
En doe hetzelfde voor de contact pagina. Verder staat er een dubieuze no-reply header die volgens mij geen nut heeft bij deze code.

(controleer ook even hoe je op de juiste manier de headers van elkaar moet scheiden, want volgens mij moet je niet \n maar \r\n gebruiken)


De pagina's contact en reserveren doen het niet meer als ik die header verander?>?? Hoe kan dit?
 
Welke fout zie je? Wat is uiteindelijk de header die wordt meegestuurd? ( echo $header; )

\n is een newline, \r is een carriage return. Hoewel ze in theorie hetzelfde doen (naar het begin van een nieuwe regel gaan) hangt het van de toepassing af wat er precies gebeurt. Ik zal me niet wagen aan een exacte uitleg - het internet staat er vol mee - maar heel algemeen kun je stellen dat je in linux/unix documenten en in html code prima alleen een newline gebruiken (\n) maar zodra je iets met met andere protocollen, applicaties of standaarden gaat doen moet je \r\n gebruiken om er zeker van te zijn dat de onderdelen worden gescheiden.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan