Hallo programmeurs. Ik wil zelf een website maken. Als de bezoekers een vraag hebben kunnen ze een formulier invullen. De gegevens worden dan naar mijn email adress doorgestuurd. Is dat mogelijk in PHP? Zoja, wat is daar de code voor?

Alvast bedankt!!!

Dit is mijn HTML code.

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>test</title>
		
	</head>
	<body>
	<form action="test.php" method="post">
	Voornaam:<br>
	<input type="text" name="voornaam"><br>
	Achternaam:<br>
	<input type="text" name="achternaam"><br>
	Email:<br>
	<input type="text" name="email"><br>
	Bericht:<br>
	<textarea name="bericht" rows="5">
	</textarea> <br>
	<input type="submit" value="Verzend">
	</form> 
	</body>
</html>

Inderdaad, wat Adaptive Solution zegt...
We willen je graag helpen, maar zelf wat zoekwerk uitvoeren vinden we ook erg fijn.

Verder heb ik even wat code-tags geplaatst. Gelieve deze zelf toe te voegen in het vervolg. Zie ook de UBB-codes in de 'Veelgestelde Vragen'.
Lijkt zelfs verdacht veel op huiswerk/schooltaak

PS het is e-mail niet Email
- Ariën - op 17/10/2017 16:39:43

Inderdaad, wat Adaptive Solution zegt...
We willen je graag helpen, maar zelf wat zoekwerk uitvoeren vinden we ook erg fijn.

Verder heb ik even wat code-tags geplaatst. Gelieve deze zelf toe te voegen in het vervolg. Zie ook de UBB-codes in de 'Veelgestelde Vragen'.



Hallo iedereen, bedankt voor de snelle reacties! Ik zal even wat verduidelijken:
Het is inderdaad voor school. We moeten (vwo4) een website maken. We hebben javascript, html en css gehad. Alle andere talen mocht je opzoeken. Automatisch e-mails versturen kan alleen via php had ik gelezen. Ik heb (heel) veel op internet rondgekeken, YouTube filmpjes gekeken en veel dingen geprobeerd, maar niets lukte. Dus daarom dit forum.....

Ik heb de volgende code gevonden, maar die werkt niet. Als er iemand tijd over heeft, en er even naar zou willen kijken, zou je me er erg mee helpen!!!!
[email protected] is btw niet mijn echte email adress.
Groetjes Maarten

<?php 
if(isset($_POST['submit'])){
    $to = "[email protected]"; // this is your Email address
    $from = $_POST['email']; // this is the sender's Email address
    $first_name = $_POST['first_name'];
    $last_name = $_POST['last_name'];
    $subject = "Form submission";
    $subject2 = "Copy of your form submission";
    $message = $first_name . " " . $last_name . " wrote the following:" . "\n\n" . $_POST['message'];
    $message2 = "Here is a copy of your message " . $first_name . "\n\n" . $_POST['message'];

    $headers = "From:" . $from;
    $headers2 = "From:" . $to;
    mail($to,$subject,$message,$headers);
    mail($from,$subject2,$message2,$headers2); // sends a copy of the message to the sender
    echo "Mail Sent. Thank you " . $first_name . ", we will contact you shortly.";
    // You can also use header('Location: thank_you.php'); to redirect to another page.
    }
?>

<!DOCTYPE html>
<head>
<title>Form submission</title>
</head>
<body>

<form action="" method="post">
First Name: <input type="text" name="first_name"><br>
Last Name: <input type="text" name="last_name"><br>
Email: <input type="text" name="email"><br>
Message:<br><textarea rows="5" name="message" cols="30"></textarea><br>
<input type="submit" name="submit" value="Submit">
</form>

</body>
</html> 


Ik zou deze headers eens gebruiken:
http://wiki.phpbeginners.nl/index.php?title=De_juiste_mailheaders

Verder raad ik aan om error_reporting op E_ALL te zetten, en display_errors aan te zetten.
Een mooie if-else om je mail() functie kan ook geen kwaad, zodat je zeker weet of de functie zijn werk gedaan heeft, in plaats van zelf maar te bepalen dat de mail verzonden is.
Het vervelende van email versturen vanuit PHP is dat er veel factoren zijn waarmee het mis kan gaan.

- vanaf de eigen computer gaat het niet zomaar werken. Je mailserver (afhankelijk van het besturingssysteem) moet geïnstalleerd zijn, gestart zijn en juist geconfigureerd zijn.

- vanaf de hosting provider is het raadzaam om eens goed de FAQ's door te lezen. Sommige ondersteunen de php mail() functie helemaal niet en bieden slechts een SMTP server aan en sommige hebben een rijtje voorwaarden waaraan je moet voldoen. één van de veel voorkomende voorwaarden is dat de FROM: een bestaande mailbox moet zijn bij de hosting provider. Mocht de hosting provider inderdaad alleen SMTP ondersteunen dan zul je PHPMailer nodig hebben om je mail te versturen. Daar kunnen we je eventueel wel bij helpen maar je moet dan wel weer goed de settings HOST, PORT, ENCRYPTIE, LOGINNAAM, PASSWORD weten.

Tip:

Neem onderstaande test script even over en probeer hiermee een eerste mail te sturen.
<?php

/*
* TEST JE EMAIL
*/
ini_set( 'display_errors', 1 );
error_reporting( E_ALL );

/*
* INDIEN MOGELIJK VUL HIER ONDER BIJVOORKEUR EEN BESTAAND EMAILADRES IN DAT EINDIGT OP JE EIGEN DOMEINNAAM
*
* Voorbeeld:
*
* Je domeinnaam is phphulp.nl
* Je hebt een mailadres aangemaakt: [email protected]
* $from = '[email protected]';
*/
$from = '[email protected]';

/*
* WAAR WIL JE JE TESTMAIL HEEN STUREN?
*/
$to = '[email protected]';


$subject = 'PHP Mail Test script';
$message = 'Dit mailtje is een testbericht.';

$headers = 'From: ' . $from . "\r\n";
$headers .= 'X-Mailer: PHP/' . phpversion() . "\r\n";
$headers .= 'X-Priority: Normal' . "\r\n";

if(mail($to,$subject,$message, $headers)) {
echo 'Testmail is verzonden naar ' . $to;
} else {
echo 'Het verzenden van de mail is MISLUKT!';
}

?>

[size=xsmall]Toevoeging op 17/10/2017 23:53:27:[/size]

Onthoudt tevens dat als het script zegt dat de mail succesvol verstuurt is dit nog geen enkele garantie is dat een mail ook bij de ontvanger aankomt.
Frank Nietbelangrijk op 17/10/2017 23:47:57

Het vervelende van email versturen vanuit PHP is dat er veel factoren zijn waarmee het mis kan gaan.

- vanaf de eigen computer gaat het niet zomaar werken. Je mailserver (afhankelijk van het besturingssysteem) moet geïnstalleerd zijn, gestart zijn en juist geconfigureerd zijn.

- vanaf de hosting provider is het raadzaam om eens goed de FAQ's door te lezen. Sommige ondersteunen de php mail() functie helemaal niet en bieden slechts een SMTP server aan en sommige hebben een rijtje voorwaarden waaraan je moet voldoen. één van de veel voorkomende voorwaarden is dat de FROM: een bestaande mailbox moet zijn bij de hosting provider. Mocht de hosting provider inderdaad alleen SMTP ondersteunen dan zul je PHPMailer nodig hebben om je mail te versturen. Daar kunnen we je eventueel wel bij helpen maar je moet dan wel weer goed de settings HOST, PORT, ENCRYPTIE, LOGINNAAM, PASSWORD weten.

Tip:

Neem onderstaande test script even over en probeer hiermee een eerste mail te sturen.
<?php

/*
* TEST JE EMAIL
*/
ini_set( 'display_errors', 1 );
error_reporting( E_ALL );

/*
* INDIEN MOGELIJK VUL HIER ONDER BIJVOORKEUR EEN BESTAAND EMAILADRES IN DAT EINDIGT OP JE EIGEN DOMEINNAAM
*
* Voorbeeld:
*
* Je domeinnaam is phphulp.nl
* Je hebt een mailadres aangemaakt: [email protected]
* $from = '[email protected]';
*/
$from = '[email protected]';

/*
* WAAR WIL JE JE TESTMAIL HEEN STUREN?
*/
$to = '[email protected]';


$subject = 'PHP Mail Test script';
$message = 'Dit mailtje is een testbericht.';

$headers = 'From: ' . $from . "\r\n";
$headers .= 'X-Mailer: PHP/' . phpversion() . "\r\n";
$headers .= 'X-Priority: Normal' . "\r\n";

if(mail($to,$subject,$message, $headers)) {
echo 'Testmail is verzonden naar ' . $to;
} else {
echo 'Het verzenden van de mail is MISLUKT!';
}

?>

[size=xsmall]Toevoeging op 17/10/2017 23:53:27:[/size]

Onthoudt tevens dat als het script zegt dat de mail succesvol verstuurt is dit nog geen enkele garantie is dat een mail ook bij de ontvanger aankomt.


Hallo Frank, bedankt voor je reactie. Ik heb echt totaal geen verstand van PHP. Ik heb jouw code toegevoegd, en dit zou het dan moeten worden??

 <?php

/*
 * TEST JE EMAIL
 */
ini_set( 'display_errors', 1 );
error_reporting( E_ALL );

/*
 * INDIEN MOGELIJK VUL HIER ONDER BIJVOORKEUR EEN BESTAAND EMAILADRES IN DAT EINDIGT OP JE EIGEN DOMEINNAAM 
 * 
 * Voorbeeld:
 * 
 * Je domeinnaam is phphulp.nl
 * Je hebt een mailadres aangemaakt: [email protected]
 * $from = '[email protected]';
 */
$from = '[email protected]';

/*
 * WAAR WIL JE JE TESTMAIL HEEN STUREN?
 */
$to = '[email protected]';


$subject = 'PHP Mail Test script';
$message = 'Dit mailtje is een testbericht.';

$headers  = 'From: ' . $from . "\r\n";
$headers .= 'X-Mailer: PHP/' . phpversion() . "\r\n";
$headers .= 'X-Priority: Normal' . "\r\n";

if(mail($to,$subject,$message, $headers)) {
    echo 'Testmail is verzonden naar ' . $to;
} else {
    echo 'Het verzenden van de mail is MISLUKT!';
}

?> 

<!DOCTYPE html>
<head>
<title>Form submission</title>
</head>
<body>

<form action="" method="post">
First Name: <input type="text" name="first_name"><br>
Last Name: <input type="text" name="last_name"><br>
Email: <input type="text" name="email"><br>
Message:<br><textarea rows="5" name="message" cols="30"></textarea><br>
<input type="submit" name="submit" value="Submit">
</form>

</body>
</html> 
.

Dit werkt helaas ook niet. Je zegt ook dat er een grote kans is dat mailtjes niet aankomen. Ik denk dat het dan handiger is om een comment system te maken waarop mensen een reactie achter kunnen laten, die dan op de admin pagina wordt geplaats.

Gebruik je dit script lokaal op je eigen computer, of bij een hostingprovider? En staan ze gewoon niet in de spam-box?
- Ariën - op 18/10/2017 10:19:03

Gebruik je dit script lokaal op je eigen computer, of bij een hostingprovider? En staan ze gewoon niet in de spam-box?


Hallo Ariën, ik gebruik het script op mijn eigen computer. Ik gebruik geen hostingprovider. Ze staan ook niet in de spam-box.
Dan gaat dat ook niet werken. JE moet dan de SMTP instelling aanpassen.
Welk php dingetje gebruik je? WAMP, XAMMP, Laragon?
Verder moet je wel je formulier aan je mail script knopen anders heeft dat formulier niet zoveel zin.

<?php

ini_set( 'display_errors', 1 );
error_reporting( E_ALL );

if($_SERVER['REQUEST_METHOD'] == 'POST')
{

  $from = $_POST['email'];
  $to = 'JOU_EIGEN_EMAIL';
  $subject = $_POST['first_name'].' '.$_POST['last_name'].'heeft je een mail gestuurd.';
  $message = $_POST['message'];

  $headers= 'From: ' . $from . "\r\n";
  $headers .= 'X-Mailer: PHP/' . phpversion() . "\r\n";
  $headers .= 'X-Priority: Normal' . "\r\n";

  if(mail($to,$subject,$message, $headers)) 
  {
    echo 'Testmail is verzonden naar ' . $to;
  } 
  else 
     {
        echo 'Het verzenden van de mail is MISLUKT!';
     }
}
else
{
?>
<!DOCTYPE html>
<head>
<title>Form submission</title>
</head>
<body>

<form action="" method="post">
First Name: <input type="text" name="first_name"><br>
Last Name: <input type="text" name="last_name"><br>
Email: <input type="text" name="email"><br>
Message:<br><textarea rows="5" name="message" cols="30"></textarea><br>
<input type="submit" name="submit" value="Submit">
</form>

</body>
</html> 
<?php
}
?> 

EDIT Typo weggehaald

Reageren