Email verzenden vanaf website lukt niet
Ik gebruik bij al mijn websites hetzelfde mailformulier.
Maar bij deze website krijg ik geen mail binnen.
Heeft dat iets te maken met .eu als domeinnaam?
Onderling kan ik wel mail ontvangen als ik in mijn mailbox mailtjes verzend tussen verschillende websites.
Stukje code:
<?php // E-mailbericht verzenden als de gegevens niet vervuild zijn:
if (!$vervuild) {
// Constante voor het e-mailadres van de ontvanger:
define("AAN", "info@printer-inkt.eu");
// Constante voor het onderwerp:
define("ONDERWERP", "Contactformulier");
// Headers met de naam en het e-mailadres van de gebruiker:
$headers = "From: \"$naam\" <$emailadres>\r\n";
$headers .= "Reply-To: \"$naam\" <$emailadres>\r\n";
// Naam en e-mailadres toevoegen aan de tekst:
?>
Maar bij deze website krijg ik geen mail binnen.
Heeft dat iets te maken met .eu als domeinnaam?
Onderling kan ik wel mail ontvangen als ik in mijn mailbox mailtjes verzend tussen verschillende websites.
Stukje code:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php // E-mailbericht verzenden als de gegevens niet vervuild zijn:
if (!$vervuild) {
// Constante voor het e-mailadres van de ontvanger:
define("AAN", "info@printer-inkt.eu");
// Constante voor het onderwerp:
define("ONDERWERP", "Contactformulier");
// Headers met de naam en het e-mailadres van de gebruiker:
$headers = "From: \"$naam\" <$emailadres>\r\n";
$headers .= "Reply-To: \"$naam\" <$emailadres>\r\n";
// Naam en e-mailadres toevoegen aan de tekst:
?>
Gesponsorde koppelingen:
Tja, dit zegt mij allemaal niets.....
dit email script heb ik hier van phpHulp gehaald.
Vervelend dat ik hier weer zo laat achter kom, heb zo waarschijnlijk heel wat mailtjes gemist.
Snap niet dat het wel bij de anderen lukt en niet hier.....
Is het maar een kleinigheid wat ik moet wijzigen of kan ik beter naar een ander script op zoek gaan?
Dit is het hele script:
En dit is de mailcontrole pagina:
dit email script heb ik hier van phpHulp gehaald.
Vervelend dat ik hier weer zo laat achter kom, heb zo waarschijnlijk heel wat mailtjes gemist.
Snap niet dat het wel bij de anderen lukt en niet hier.....
Is het maar een kleinigheid wat ik moet wijzigen of kan ik beter naar een ander script op zoek gaan?
Dit is het hele 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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
<?php
// Variabelen:
$naam = ""; // Naam van de afzender
$emailadres = ""; // E-mailadres van de afzender
$tekst = ""; // Tekst van het e-mailbericht
$vervuild = FALSE; // TRUE als het formulier geen fouten bevat
$verzonden = FALSE; // TRUE als het e-mailbericht is verzonden
$melding = ""; // String voor (fout)meldingen
// Formulier alleen verwerken als er op een knop
// met de naam 'submit' is geklikt ...
if (isset($_POST['submit'])) {
// ... en deze knop de waarde 'Verzenden' heeft:
if ($_POST['submit'] == "Verzenden") {
$naam = $_POST['n'];
$emailadres = $_POST['e'];
$tekst = $_POST['t'];
// HTML-tags en PHP-code verwijderen:
$naam = strip_tags($naam);
$emailadres = strip_tags($emailadres);
$tekst = strip_tags($tekst);
// Spaties en andere witruimte verwijderen uit de naam en
// het e-mailadres, maar niet uit de tekst van het bericht:
$naam = trim($naam);
$emailadres = trim($emailadres);
if (strlen($naam) < 1) {
$melding .= "Voer uw <strong>naam</strong> in. ";
$vervuild = TRUE;
}
if (strlen($emailadres) < 1) {
$melding .= "Voer uw <strong>e-mailadres</strong> in. ";
$vervuild = TRUE;
} else {
require_once('is_email.inc.php');
if (!is_email($emailadres)) {
$melding .= "<strong>" . htmlentities($emailadres) . "</strong> is geen geldig e-mailadres. ";
$vervuild = TRUE;
}
}
if (strlen($tekst) < 5) {
$melding .= "Voer een <strong>tekst</strong> in. ";
$vervuild = TRUE;
}
// E-mailbericht verzenden als de gegevens niet vervuild zijn:
if (!$vervuild) {
// Constante voor het e-mailadres van de ontvanger:
define("AAN", "info@kado-geven.nl");
// Constante voor het onderwerp:
define("ONDERWERP", "Contactformulier");
// Headers met de naam en het e-mailadres van de gebruiker:
$headers = "From: \"$naam\" <$emailadres>\r\n";
$headers .= "Reply-To: \"$naam\" <$emailadres>\r\n";
// Naam en e-mailadres toevoegen aan de tekst:
$tekst .= "\r\n\r\n$naam";
$tekst .= "\r\n<$emailadres>";
if (mail(AAN, ONDERWERP, $tekst, $headers)) {
$verzonden = TRUE;
$melding = "Hartelijk dank voor uw reactie. ";
$melding .= "U ontvangt zo spoedig mogelijk antwoord. ";
} else {
$verzonden = FALSE;
$melding = "Uw bericht kon niet worden verzonden. ";
$melding .= "Wijzig het e-mailadres of probeer het later nog een keer. ";
}
}
}
}
// Standaardtekst voor instructies instellen
// als er geen foutmeldingen zijn:
if ($melding == "") {
$melding = "Voer eerst uw naam en uw e-mailadres in.<br /> ";
$melding .= "Typ daarna uw e-mailbericht in het grote vak en klik op Verzenden.";
}
?>
<h1>Contact Formulier</h1>
<p><?php echo $melding; ?></p>
<?php
// Formulier weergeven als de gegevens vervuild zijn
// of het e-mailbericht niet verzonden is:
if ($vervuild or !$verzonden) {
$naam = htmlentities($naam);
$emailadres = htmlentities($emailadres);
$tekst = htmlentities($tekst);
?>
<form action="<?php echo '?info_id=1'; ?>" method="post">
<table width="350" border="0" align="center" cellpadding="0" cellspacing="2">
<tr>
<td width="20%"><label for="n"><span style="text-decoration: underline">N</span>aam:</label></td>
<td width="80%"><input class="formulierveld" accesskey="n" id="n" name="n" size="30" type="text" value="<?php echo $naam; ?>"></td>
</tr>
<tr>
<td nowrap><label for="e"><span style="text-decoration: underline">E</span>-mailadres:</label></td>
<td><input class="formulierveld" accesskey="e" id="e" name="e" type="text" size="30" value="<?php echo $emailadres; ?>"></td>
</tr>
<tr>
<td colspan="2">
<label for="t"><span style="text-decoration: underline">T</span>ekst van uw e-mailbericht:</label>
</td>
</tr>
<tr>
<td colspan="2"><textarea class="formulierveld" accesskey="t" cols="44" id="t" name="t" rows="4"><?php echo $tekst; ?></textarea></td>
</tr>
<tr align="center">
<td colspan="2">
<input class="verzendknop" name="submit" type="submit" value="Verzenden"> </td>
</tr>
</table>
</form>
<?php
}
?>
// Variabelen:
$naam = ""; // Naam van de afzender
$emailadres = ""; // E-mailadres van de afzender
$tekst = ""; // Tekst van het e-mailbericht
$vervuild = FALSE; // TRUE als het formulier geen fouten bevat
$verzonden = FALSE; // TRUE als het e-mailbericht is verzonden
$melding = ""; // String voor (fout)meldingen
// Formulier alleen verwerken als er op een knop
// met de naam 'submit' is geklikt ...
if (isset($_POST['submit'])) {
// ... en deze knop de waarde 'Verzenden' heeft:
if ($_POST['submit'] == "Verzenden") {
$naam = $_POST['n'];
$emailadres = $_POST['e'];
$tekst = $_POST['t'];
// HTML-tags en PHP-code verwijderen:
$naam = strip_tags($naam);
$emailadres = strip_tags($emailadres);
$tekst = strip_tags($tekst);
// Spaties en andere witruimte verwijderen uit de naam en
// het e-mailadres, maar niet uit de tekst van het bericht:
$naam = trim($naam);
$emailadres = trim($emailadres);
if (strlen($naam) < 1) {
$melding .= "Voer uw <strong>naam</strong> in. ";
$vervuild = TRUE;
}
if (strlen($emailadres) < 1) {
$melding .= "Voer uw <strong>e-mailadres</strong> in. ";
$vervuild = TRUE;
} else {
require_once('is_email.inc.php');
if (!is_email($emailadres)) {
$melding .= "<strong>" . htmlentities($emailadres) . "</strong> is geen geldig e-mailadres. ";
$vervuild = TRUE;
}
}
if (strlen($tekst) < 5) {
$melding .= "Voer een <strong>tekst</strong> in. ";
$vervuild = TRUE;
}
// E-mailbericht verzenden als de gegevens niet vervuild zijn:
if (!$vervuild) {
// Constante voor het e-mailadres van de ontvanger:
define("AAN", "info@kado-geven.nl");
// Constante voor het onderwerp:
define("ONDERWERP", "Contactformulier");
// Headers met de naam en het e-mailadres van de gebruiker:
$headers = "From: \"$naam\" <$emailadres>\r\n";
$headers .= "Reply-To: \"$naam\" <$emailadres>\r\n";
// Naam en e-mailadres toevoegen aan de tekst:
$tekst .= "\r\n\r\n$naam";
$tekst .= "\r\n<$emailadres>";
if (mail(AAN, ONDERWERP, $tekst, $headers)) {
$verzonden = TRUE;
$melding = "Hartelijk dank voor uw reactie. ";
$melding .= "U ontvangt zo spoedig mogelijk antwoord. ";
} else {
$verzonden = FALSE;
$melding = "Uw bericht kon niet worden verzonden. ";
$melding .= "Wijzig het e-mailadres of probeer het later nog een keer. ";
}
}
}
}
// Standaardtekst voor instructies instellen
// als er geen foutmeldingen zijn:
if ($melding == "") {
$melding = "Voer eerst uw naam en uw e-mailadres in.<br /> ";
$melding .= "Typ daarna uw e-mailbericht in het grote vak en klik op Verzenden.";
}
?>
<h1>Contact Formulier</h1>
<p><?php echo $melding; ?></p>
<?php
// Formulier weergeven als de gegevens vervuild zijn
// of het e-mailbericht niet verzonden is:
if ($vervuild or !$verzonden) {
$naam = htmlentities($naam);
$emailadres = htmlentities($emailadres);
$tekst = htmlentities($tekst);
?>
<form action="<?php echo '?info_id=1'; ?>" method="post">
<table width="350" border="0" align="center" cellpadding="0" cellspacing="2">
<tr>
<td width="20%"><label for="n"><span style="text-decoration: underline">N</span>aam:</label></td>
<td width="80%"><input class="formulierveld" accesskey="n" id="n" name="n" size="30" type="text" value="<?php echo $naam; ?>"></td>
</tr>
<tr>
<td nowrap><label for="e"><span style="text-decoration: underline">E</span>-mailadres:</label></td>
<td><input class="formulierveld" accesskey="e" id="e" name="e" type="text" size="30" value="<?php echo $emailadres; ?>"></td>
</tr>
<tr>
<td colspan="2">
<label for="t"><span style="text-decoration: underline">T</span>ekst van uw e-mailbericht:</label>
</td>
</tr>
<tr>
<td colspan="2"><textarea class="formulierveld" accesskey="t" cols="44" id="t" name="t" rows="4"><?php echo $tekst; ?></textarea></td>
</tr>
<tr align="center">
<td colspan="2">
<input class="verzendknop" name="submit" type="submit" value="Verzenden"> </td>
</tr>
</table>
</form>
<?php
}
?>
En dit is de mailcontrole pagina:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
// +----------------------------------------+
// | Deze functie controleert of een string |
// | de vorm van een e-mailadres heeft. |
// +----------------------------------------+
function is_email($emailadres)
{
// Eerst een snelle controle uitvoeren:
// een e-mailadres moet uit minimaal 7 tekens bestaan:
if (strlen($emailadres) < 7) {
return FALSE;
}
// Daarna een controle uitvoeren met een reguliere expressie:
if (ereg("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})$", $emailadres)) {
return TRUE;
} else {
return FALSE;
}
}
?>
// +----------------------------------------+
// | Deze functie controleert of een string |
// | de vorm van een e-mailadres heeft. |
// +----------------------------------------+
function is_email($emailadres)
{
// Eerst een snelle controle uitvoeren:
// een e-mailadres moet uit minimaal 7 tekens bestaan:
if (strlen($emailadres) < 7) {
return FALSE;
}
// Daarna een controle uitvoeren met een reguliere expressie:
if (ereg("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})$", $emailadres)) {
return TRUE;
} else {
return FALSE;
}
}
?>
Probeer het eens met deze headers:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
$header = "From: Websitenaam<email@domein.ext>\r\n";
$header .= "MIME-Version: 1.0\r\n";
$header .= "Content-type: text/html; charset=iso-8859-1\r\n";
$header .= "X-Priority: 2\r\n"; # 1 voor erg belangrijk
$header .= "X-MSMail-Priority: High\r\n";
$header .= "X-Mailer: PHP/".phpversion();
?>
$header = "From: Websitenaam<email@domein.ext>\r\n";
$header .= "MIME-Version: 1.0\r\n";
$header .= "Content-type: text/html; charset=iso-8859-1\r\n";
$header .= "X-Priority: 2\r\n"; # 1 voor erg belangrijk
$header .= "X-MSMail-Priority: High\r\n";
$header .= "X-Mailer: PHP/".phpversion();
?>
Ja, het werkt !!
Bedankt Robert !!
Wat alleen nu opvalt is dat als de mail binnenkomt het niet meer netjes onder elkaar staat maar achter elkaar.
Hoe komt dit?
Bedankt Robert !!
Wat alleen nu opvalt is dat als de mail binnenkomt het niet meer netjes onder elkaar staat maar achter elkaar.
Hoe komt dit?
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
<?php
// Headers met de naam en het e-mailadres van de gebruiker:
$headers = "From: \"$naam\" <$emailadres>\r\n";
$headers .= "Reply-To: \"$naam\" <$emailadres>\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "X-Priority: 2\r\n"; # 1 voor erg belangrijk
$headers .= "X-MSMail-Priority: High\r\n";
$headers .= "X-Mailer: PHP/".phpversion();
// Naam en e-mailadres toevoegen aan de tekst:
$tekst .= "\r\n\r\nNaam: $naam";
$tekst .= "\r\nWebsite naam: $websitenaam";
$tekst .= "\r\nWebsite url: $websiteurl";
$tekst .= "\r\nCategorie: $categorie";
$tekst .= "\r\nEmail adres: <$emailadres>";
$tekst .= "\r\nIp adres: $ip";
?>
// Headers met de naam en het e-mailadres van de gebruiker:
$headers = "From: \"$naam\" <$emailadres>\r\n";
$headers .= "Reply-To: \"$naam\" <$emailadres>\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "X-Priority: 2\r\n"; # 1 voor erg belangrijk
$headers .= "X-MSMail-Priority: High\r\n";
$headers .= "X-Mailer: PHP/".phpversion();
// Naam en e-mailadres toevoegen aan de tekst:
$tekst .= "\r\n\r\nNaam: $naam";
$tekst .= "\r\nWebsite naam: $websitenaam";
$tekst .= "\r\nWebsite url: $websiteurl";
$tekst .= "\r\nCategorie: $categorie";
$tekst .= "\r\nEmail adres: <$emailadres>";
$tekst .= "\r\nIp adres: $ip";
?>
Gewijzigd op 01/01/1970 01:00:00 door Elsy Vriens
Hij verstuurt het als HTML, daarin gebruik je geen r\n\ voor een nieuwe regel, maar <br/>. Haal dus nog ff nl2br() over $tekst voor je de mail verstuurd.
hoe zou ik een ingefulde formulier kunnen verzenden met php naar een e-mail adderes
Gewijzigd op 07/07/2010 21:54:06 door hans pieters
Hans pieters op 07/07/2010 21:53:28:
hoe zou ik een ingefulde formulier kunnen verzenden met php naar een e-mail adderes
Gelieve niet iemands (overjarige) topic over te nemen, maar open een eigen topic.
TIP: Gebruik swift mailer :D



