de klant krijgt geen email bericht...en blijft leeg
Ik krijg netjes alle info als je op verzenden klikt, maar de bezoeker ontvangt niets ( of helemaal leeg)
iemand een idee?
dit is het script:
Code (php)
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
90
91
92
93
94
95
96
97
98
99
100
101
102
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
90
91
92
93
94
95
96
97
98
99
100
101
102
<?php
// datum laatste wijziging: 9 juli 2012
// Invoer uit het contactformulier
$name = strip_tags($_POST['name']);
$email = strip_tags($_POST['email']);
$message = strip_tags($_POST['msg']);
// datum$jaar = date("Y");
$maand = date("m");
$dag = date("d");
$datum = $dag . " " . $maand . " " . $jaar;
$tijd = time();
// emailadres waar de berichten heen moeten
// hier moet je dus je eigen emailadres neerzetten!
$mijnadres = "[email protected]";
// de naam van je website
// hier moet je dus de naam van je eigen website neerzetten!
$mijnsite = "www.cargowebshippers.no";
// ongewenste emaildomeinen in een array:
$xmail = array("@cepk.info", "ceprk.info", "@gawab.com", "@mail.ru", "@yandex.com", "@gates.com");
$xmaildomein = "";
function is_substr($needle, $haystack){
$pos = strpos($haystack, $needle);
if ($pos === false) {
return false;
} else {
return true;
}
}
// Fouten en veiligheidscontroles
if ( ( !$email ) ||
( strlen($_POST['email']) > 200 ) ||
( !preg_match("#^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$#", $email) )
)
{
print "Fout: Ongeldig E-Mail Adres";
exit;
}
// ongewenste emaildomeinen filteren
foreach ($xmail as $xmaildomein) {
if ( is_substr($xmaildomein,$email))
{
print "Fout: Ongewenst E-Mail Adres";
exit;
}
}
// filteren op http om de overlast van spambots te verminderen
if ( is_substr("http",$message))
{
print "Fout: Gebruik geen http in je bericht";
exit;
}
if ( ( !$name ) ||
( strlen($name) > 100 ) ||
( preg_match("/[:=@\<\>]/", $name) )
)
{
print "Fout: Ongeldige Naam";
exit;
}
if ( preg_match("#cc:#i", $message, $matches) )
{
print "Fout: Ongeldig Header Field Gevonden";
exit;
}
if ( !$message )
{
print "Fout: Geen Bericht";
exit;
}
if (mb_eregi("\r",$email) || mb_eregi("\n",$email)){
print "Fout: Ongeldig E-Mail Adres";
exit;
}
// E-mail opstellen
$headers = "Content-Type: text/plain; charset=iso-8859-1\n";
$headers .= "Van: $name <$email>\n";
$recipient = $mijnadres;
$subject = "Bericht via $mijnsite $datum $tijd";
$mssg = "=== AFZENDER ========\n";
$mssg .= "$name <$email>\n";
$mssg .= "=== BEGIN BERICHT ======\n\n";
$mssg .= "$message\n\n";
$mssg .= "=== EINDE BERICHT ======\n";
$message = $mssg;
// E-mail verzenden
mail($recipient, $subject, $message, $headers);
// Doorsturen naar dank-je-wel-pagina
header("location: http://www.cargowebshippers.no/contents/en-uk/thankyou.html");
?>
// datum laatste wijziging: 9 juli 2012
// Invoer uit het contactformulier
$name = strip_tags($_POST['name']);
$email = strip_tags($_POST['email']);
$message = strip_tags($_POST['msg']);
// datum$jaar = date("Y");
$maand = date("m");
$dag = date("d");
$datum = $dag . " " . $maand . " " . $jaar;
$tijd = time();
// emailadres waar de berichten heen moeten
// hier moet je dus je eigen emailadres neerzetten!
$mijnadres = "[email protected]";
// de naam van je website
// hier moet je dus de naam van je eigen website neerzetten!
$mijnsite = "www.cargowebshippers.no";
// ongewenste emaildomeinen in een array:
$xmail = array("@cepk.info", "ceprk.info", "@gawab.com", "@mail.ru", "@yandex.com", "@gates.com");
$xmaildomein = "";
function is_substr($needle, $haystack){
$pos = strpos($haystack, $needle);
if ($pos === false) {
return false;
} else {
return true;
}
}
// Fouten en veiligheidscontroles
if ( ( !$email ) ||
( strlen($_POST['email']) > 200 ) ||
( !preg_match("#^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$#", $email) )
)
{
print "Fout: Ongeldig E-Mail Adres";
exit;
}
// ongewenste emaildomeinen filteren
foreach ($xmail as $xmaildomein) {
if ( is_substr($xmaildomein,$email))
{
print "Fout: Ongewenst E-Mail Adres";
exit;
}
}
// filteren op http om de overlast van spambots te verminderen
if ( is_substr("http",$message))
{
print "Fout: Gebruik geen http in je bericht";
exit;
}
if ( ( !$name ) ||
( strlen($name) > 100 ) ||
( preg_match("/[:=@\<\>]/", $name) )
)
{
print "Fout: Ongeldige Naam";
exit;
}
if ( preg_match("#cc:#i", $message, $matches) )
{
print "Fout: Ongeldig Header Field Gevonden";
exit;
}
if ( !$message )
{
print "Fout: Geen Bericht";
exit;
}
if (mb_eregi("\r",$email) || mb_eregi("\n",$email)){
print "Fout: Ongeldig E-Mail Adres";
exit;
}
// E-mail opstellen
$headers = "Content-Type: text/plain; charset=iso-8859-1\n";
$headers .= "Van: $name <$email>\n";
$recipient = $mijnadres;
$subject = "Bericht via $mijnsite $datum $tijd";
$mssg = "=== AFZENDER ========\n";
$mssg .= "$name <$email>\n";
$mssg .= "=== BEGIN BERICHT ======\n\n";
$mssg .= "$message\n\n";
$mssg .= "=== EINDE BERICHT ======\n";
$message = $mssg;
// E-mail verzenden
mail($recipient, $subject, $message, $headers);
// Doorsturen naar dank-je-wel-pagina
header("location: http://www.cargowebshippers.no/contents/en-uk/thankyou.html");
?>
===================
en het html deeltje
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<!doctype html>
<html xmlns:sf lang="en-uk" dir="ltr" >
<head>
<STYLE>
body {
background-color: #FFFFFF;
color: #999399;
}
</STYLE>
<CENTER>
<!--?php echo $jaar; ?--></H1>
<FORM method=post name=form action=verwerking.php>
<BR> <BR><B>Bestellings cofirmation</B><BR> <BR>
<LABEL>Name:<BR><INPUT maxLength=200 size=40 name=name></LABEL><BR> <BR><LABEL> e-mail:<BR>
<INPUT maxLength=100 size=40 name=email></LABEL><BR> <BR><LABEL>Ordernumber:<BR>
(Gebruik geen "http" in je bericht)<BR><TEXTAREA rows=6 cols=40 name=msg></TEXTAREA></LABEL><BR> <BR><INPUT class=pointer type=submit value=Send name=Submit><BR> <BR></FORM>
<!-- einde formulier --></CENTER>
<html xmlns:sf lang="en-uk" dir="ltr" >
<head>
<STYLE>
body {
background-color: #FFFFFF;
color: #999399;
}
</STYLE>
<CENTER>
<!--?php echo $jaar; ?--></H1>
<FORM method=post name=form action=verwerking.php>
<BR> <BR><B>Bestellings cofirmation</B><BR> <BR>
<LABEL>Name:<BR><INPUT maxLength=200 size=40 name=name></LABEL><BR> <BR><LABEL> e-mail:<BR>
<INPUT maxLength=100 size=40 name=email></LABEL><BR> <BR><LABEL>Ordernumber:<BR>
(Gebruik geen "http" in je bericht)<BR><TEXTAREA rows=6 cols=40 name=msg></TEXTAREA></LABEL><BR> <BR><INPUT class=pointer type=submit value=Send name=Submit><BR> <BR></FORM>
<!-- einde formulier --></CENTER>
Edit:
Script tussen code-tags gezet voor betere leesbaarheid. Gelieve dit voortaan zelf te doen. Zie ook het tags-overzicht in de 'Veelgestelde Vragen' van de site.
Gewijzigd op 17/05/2016 11:48:04 door - Ariën -
maar je mailt naar het adres in $recipient:
Dan komt de mail dus nooit aan bij $email.
Verder schort er nogal wat aan het script. Er bestaat bijvoorbeeld geen e-mailheader "Van":
Gewijzigd op 17/05/2016 09:12:36 door - Ariën -
Waarom niet gewoon de filter_var() functie gebruiken en dan php's eigen filter gebruiken?
Hoewel jouw regex al flink wat opvangt, zal het misgaan zodra er een ö of ander niet accentloze letter, dan wel een niet westers teken gebruikt wordt.
Ik ben niet zo goed in php en was al blij dat ik dit kon...lol
ik krijg keurig mijn emails binnen, vandaar dat ik dacht: ben al aardig op weg.
mail($recipient, $subject, $message, $headers, $email);
Heb hier email in toegevoegd....maar komt ook dan niet aan
http://php.net/mail
de functie mail() verwacht als eerste parameter een string met het mailadres dat de mail moet gaan ontvangen. Simpelweg als 5e parameter een adres toevoegen, zal niet gaan.
de functie mail() verwacht als eerste parameter een string met het mailadres dat de mail moet gaan ontvangen. Simpelweg als 5e parameter een adres toevoegen, zal niet gaan.
de functie mail() is toch de mail die ik zelf op mijn email adres ontvang? en niet de kopie van de klant ?
$email bevat het mailadres uit het formulier
$recepient bevat een hardcoded adres (van jou)
De mail wordt gestuurd aan $receipient
in de headers staat: $headers .= "Van: $name <$email>\n";
als je van Van From maakt zal de mail schijnbaar afkomstig zijn van het mailadres dat in formulier stond ingevuld.
Er is geen reden waarom er ook een mail aan $email gestuurd zou worden.
Hooguit als je een CC header opneemt en daarin $email zet.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
// E-mail opstellen
$headers = "Content-Type: text/plain; charset=iso-8859-1\n";
$headers .= "From: $name <$email>\n";
$headers .= 'Cc: $email\r\n';
$recipient = $mijnadres;
$subject = "Bericht via $mijnsite $datum $tijd";
$mssg = "=== AFZENDER ========\n";
$mssg .= "$name <$email>\n";
$mssg .= "=== BEGIN BERICHT ======\n\n";
$mssg .= "$message\n\n";
$mssg .= "=== EINDE BERICHT ======\n";
$message = $mssg;
// E-mail verzenden
mail($recipient, $subject, $message, $headers);
?>
// E-mail opstellen
$headers = "Content-Type: text/plain; charset=iso-8859-1\n";
$headers .= "From: $name <$email>\n";
$headers .= 'Cc: $email\r\n';
$recipient = $mijnadres;
$subject = "Bericht via $mijnsite $datum $tijd";
$mssg = "=== AFZENDER ========\n";
$mssg .= "$name <$email>\n";
$mssg .= "=== BEGIN BERICHT ======\n\n";
$mssg .= "$message\n\n";
$mssg .= "=== EINDE BERICHT ======\n";
$message = $mssg;
// E-mail verzenden
mail($recipient, $subject, $message, $headers);
?>
Edit:
Script tussen code-tags gezet voor betere leesbaarheid. Gelieve dit voortaan zelf te doen. Zie ook het tags-overzicht in de 'Veelgestelde Vragen' van de site.
Gewijzigd op 17/05/2016 12:31:41 door - Ariën -
In de Reply-To header kan je het mailadres gebruiker van de verzender.
De beste opzet van de mailheaders vind je hier: http://wiki.phpbeginners.nl/index.php?title=De_juiste_mailheaders
Php zelf heeft slechte Mail functie. Daarom adveseer ik library 'Mailer' gaan gebruiken.
@Artur De functie is niet geheel slecht, maar er missen een hoop functionele zaken. Ik hoop dat ze dit in de toekomst met een nieuwe class (net als DateTime) zullen uitbreiden. Ikzelf prefereer zelf phpMailer als library.