E-mailscript werkt niet meer
Is hier iemand die mij kan helpen?
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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
<html>
<?php
error_reporting (E_ALL);
function isValidEmail($email){
$pattern = "^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$";
if (eregi($pattern, $email)){
list($Username, $Domain) = split("@",$email);
if(getmxrr($Domain, $MXHost)){
return true;
} else {
if(fsockopen($Domain, 25, $errno, $errstr, 30)){
return true;
} else {
return false;
}
}
} else {
return false;
}
}
?>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Mail Deamon</title>
<!-- TinyMCE -->
<script language="javascript" type="text/javascript" src="jscripts/tiny_mce/tiny_mce.js"></script>
<script language="javascript" type="text/javascript">
tinyMCE.init({
mode : "textareas",
theme : "advanced",
plugins : "table,advhr,advimage,advlink,preview,searchreplace,print,contextmenu,paste,directionality,fullscreen",
theme_advanced_buttons1_add : "fontselect,fontsizeselect",
theme_advanced_buttons2_add : "separator,preview,separator,forecolor,backcolor",
theme_advanced_buttons2_add_before: "cut,copy,paste,pastetext,pasteword,separator,search,replace,separator",
theme_advanced_buttons3_add_before : "tablecontrols,separator",
theme_advanced_buttons3_add : "advhr,separator,print,separator,ltr,rtl,separator,fullscreen",
theme_advanced_toolbar_location : "top",
theme_advanced_toolbar_align : "left",
theme_advanced_path_location : "bottom",
plugin_insertdate_dateFormat : "%Y-%m-%d",
plugin_insertdate_timeFormat : "%H:%M:%S",
extended_valid_elements : "hr[class|width|size|noshade],font[face|size|color|style],span[class|align|style]",
theme_advanced_resize_horizontal : false,
theme_advanced_resizing : false
});
</script>
<!-- /TinyMCE -->
<style type="text/css">
<!--
body {
font-family: Verdana, Arial, Helvetica, sans-serif;
background-color: #F0F0EE;
margin:0px;
font-size: 11px;
}
td {
font-size: 11px;
}
.groen {color: #009900}
.rood {color: #FF3300}
.titel {font-size: 18px}
input {border:1px solid #CCCCCC; background-color:#FFFFFF;}
-->
</style>
</head>
<body>
<table width="100%" cellspacing="3"><tr><td align="center"><span class="titel">Mail Deamon</span></td></tr><tr><td align="center">
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" name="emailForm">
<table cellspacing="3">
<tr><td width="84" align="right">Van (Naam):</td><td><input name="from" size="100" <?php if (isset($_POST['submit'])){ echo "value=\"".$_POST['from']."\""; } ?>>
<?php
if (isset($_POST['submit'])){
if ($_POST['from'] == ""){
echo "<span class=\"rood\"><-- Niet ingevuld</span>";
$fromIs = "false";
} else {
echo "<span class=\"groen\"><-- OK</span>";
$fromIs = "true";
}
}
?></td><tr>
<tr><td align="right">Van (E-mail):</td><td><input name="fromMail" size="100" <?php if (isset($_POST['submit'])){ echo "value=\"".$_POST['fromMail']."\""; } ?>>
<?php
if (isset($_POST['submit'])){
if (isValidEmail($_POST['fromMail'])){
echo "<span class=\"groen\"><-- OK</span>";
$fromMailIs = "true";
} else {
echo "<span class=\"rood\"><-- Onjuist e-mailadres</span>";
$fromMailIs = "false";
}
}
?></td><tr>
<tr><td align="right">Aan (E-mail):</td><td><input name="to" size="100" <?php if (isset($_POST['submit'])){ echo "value=\"".$_POST['to']."\""; } ?>>
<?php
if (isset($_POST['submit'])){
if (isValidEmail($_POST['to'])){
echo "<span class=\"groen\"><-- OK</span>";
$toIs = "true";
} else {
echo "<span class=\"rood\"><-- Onjuist e-mailadres</span>";
$toIs = "false";
}
}
?></td><tr>
<tr><td align="right">Onderwerp:</td><td><input name="subject" size="100" <?php if (isset($_POST['submit'])){ echo "value=\"".$_POST['subject']."\""; } ?>>
<?php
if (isset($_POST['submit'])){
if ($_POST['subject'] == ""){
echo "<span class=\"rood\"><-- Niet ingevuld</span>";
$subjectIs = "false";
} else {
echo "<span class=\"groen\"><-- OK</span>";
$subjectIs = "true";
}
}
?></td><tr>
<tr><td colspan="2">Bericht:
<?php
if (isset($_POST['submit'])){
if ($_POST['message'] == ""){
echo "<span class=\"rood\"><-- Niet ingevuld</span>";
$massageIs = "false";
} else {
echo "<span class=\"groen\"><-- OK</span>";
$messageIs = "true";
}
}
?>
<br><textarea name="message" cols="120" rows="20"><?php if (isset($_POST['submit'])){ echo $_POST['message']; } ?></textarea></td></tr>
<tr><td colspan="2"><input type="submit" name="submit" value="Verzenden">
<?php
if (isset($_POST['submit'])){
if ($fromIs == "true"){
if ($fromMailIs == "true"){
if ($toIs == "true"){
if ($subjectIs == "true"){
if ($messageIs == "true"){
$headers = "From: ".$_POST['from']." <".$_POST['fromMail'].">\n";
$headers .= "Message-ID: <".$now."maildeamon@".$_SERVER['SERVER_NAME'].">\n";
$headers .= "X-Mailer: PHP v".phpversion()."\n";
$headers .= "MIME-Version: 1.0\n";
//$headers .= "Content-Type: text/plain; charset=\"iso-8859-1\"";
$headers .= "Content-Type: text/html; charset=\"iso-8859-1\"";
//$headers .= "Content-Type: multipart/related; boundary=\"{$mime_boundary}\"\n";
//$message = $_POST['message'];
$message = nl2br($_POST['message']);
mail ($_POST['to'], $_POST['subject'], $message, $headers);
$okIs = "true";
}
}
}
}
}
if ($okIs == "true"){
echo "<span class=\"groen\"><-- E-mail met succes verzonden</span>";
} else {
echo "<span class=\"rood\"><-- E-mail niet verzonden</span>";
}
}
?>
</td></tr>
</table>
</form>
</td></tr></table>
</body>
</html>
<?php
error_reporting (E_ALL);
function isValidEmail($email){
$pattern = "^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$";
if (eregi($pattern, $email)){
list($Username, $Domain) = split("@",$email);
if(getmxrr($Domain, $MXHost)){
return true;
} else {
if(fsockopen($Domain, 25, $errno, $errstr, 30)){
return true;
} else {
return false;
}
}
} else {
return false;
}
}
?>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Mail Deamon</title>
<!-- TinyMCE -->
<script language="javascript" type="text/javascript" src="jscripts/tiny_mce/tiny_mce.js"></script>
<script language="javascript" type="text/javascript">
tinyMCE.init({
mode : "textareas",
theme : "advanced",
plugins : "table,advhr,advimage,advlink,preview,searchreplace,print,contextmenu,paste,directionality,fullscreen",
theme_advanced_buttons1_add : "fontselect,fontsizeselect",
theme_advanced_buttons2_add : "separator,preview,separator,forecolor,backcolor",
theme_advanced_buttons2_add_before: "cut,copy,paste,pastetext,pasteword,separator,search,replace,separator",
theme_advanced_buttons3_add_before : "tablecontrols,separator",
theme_advanced_buttons3_add : "advhr,separator,print,separator,ltr,rtl,separator,fullscreen",
theme_advanced_toolbar_location : "top",
theme_advanced_toolbar_align : "left",
theme_advanced_path_location : "bottom",
plugin_insertdate_dateFormat : "%Y-%m-%d",
plugin_insertdate_timeFormat : "%H:%M:%S",
extended_valid_elements : "hr[class|width|size|noshade],font[face|size|color|style],span[class|align|style]",
theme_advanced_resize_horizontal : false,
theme_advanced_resizing : false
});
</script>
<!-- /TinyMCE -->
<style type="text/css">
<!--
body {
font-family: Verdana, Arial, Helvetica, sans-serif;
background-color: #F0F0EE;
margin:0px;
font-size: 11px;
}
td {
font-size: 11px;
}
.groen {color: #009900}
.rood {color: #FF3300}
.titel {font-size: 18px}
input {border:1px solid #CCCCCC; background-color:#FFFFFF;}
-->
</style>
</head>
<body>
<table width="100%" cellspacing="3"><tr><td align="center"><span class="titel">Mail Deamon</span></td></tr><tr><td align="center">
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" name="emailForm">
<table cellspacing="3">
<tr><td width="84" align="right">Van (Naam):</td><td><input name="from" size="100" <?php if (isset($_POST['submit'])){ echo "value=\"".$_POST['from']."\""; } ?>>
<?php
if (isset($_POST['submit'])){
if ($_POST['from'] == ""){
echo "<span class=\"rood\"><-- Niet ingevuld</span>";
$fromIs = "false";
} else {
echo "<span class=\"groen\"><-- OK</span>";
$fromIs = "true";
}
}
?></td><tr>
<tr><td align="right">Van (E-mail):</td><td><input name="fromMail" size="100" <?php if (isset($_POST['submit'])){ echo "value=\"".$_POST['fromMail']."\""; } ?>>
<?php
if (isset($_POST['submit'])){
if (isValidEmail($_POST['fromMail'])){
echo "<span class=\"groen\"><-- OK</span>";
$fromMailIs = "true";
} else {
echo "<span class=\"rood\"><-- Onjuist e-mailadres</span>";
$fromMailIs = "false";
}
}
?></td><tr>
<tr><td align="right">Aan (E-mail):</td><td><input name="to" size="100" <?php if (isset($_POST['submit'])){ echo "value=\"".$_POST['to']."\""; } ?>>
<?php
if (isset($_POST['submit'])){
if (isValidEmail($_POST['to'])){
echo "<span class=\"groen\"><-- OK</span>";
$toIs = "true";
} else {
echo "<span class=\"rood\"><-- Onjuist e-mailadres</span>";
$toIs = "false";
}
}
?></td><tr>
<tr><td align="right">Onderwerp:</td><td><input name="subject" size="100" <?php if (isset($_POST['submit'])){ echo "value=\"".$_POST['subject']."\""; } ?>>
<?php
if (isset($_POST['submit'])){
if ($_POST['subject'] == ""){
echo "<span class=\"rood\"><-- Niet ingevuld</span>";
$subjectIs = "false";
} else {
echo "<span class=\"groen\"><-- OK</span>";
$subjectIs = "true";
}
}
?></td><tr>
<tr><td colspan="2">Bericht:
<?php
if (isset($_POST['submit'])){
if ($_POST['message'] == ""){
echo "<span class=\"rood\"><-- Niet ingevuld</span>";
$massageIs = "false";
} else {
echo "<span class=\"groen\"><-- OK</span>";
$messageIs = "true";
}
}
?>
<br><textarea name="message" cols="120" rows="20"><?php if (isset($_POST['submit'])){ echo $_POST['message']; } ?></textarea></td></tr>
<tr><td colspan="2"><input type="submit" name="submit" value="Verzenden">
<?php
if (isset($_POST['submit'])){
if ($fromIs == "true"){
if ($fromMailIs == "true"){
if ($toIs == "true"){
if ($subjectIs == "true"){
if ($messageIs == "true"){
$headers = "From: ".$_POST['from']." <".$_POST['fromMail'].">\n";
$headers .= "Message-ID: <".$now."maildeamon@".$_SERVER['SERVER_NAME'].">\n";
$headers .= "X-Mailer: PHP v".phpversion()."\n";
$headers .= "MIME-Version: 1.0\n";
//$headers .= "Content-Type: text/plain; charset=\"iso-8859-1\"";
$headers .= "Content-Type: text/html; charset=\"iso-8859-1\"";
//$headers .= "Content-Type: multipart/related; boundary=\"{$mime_boundary}\"\n";
//$message = $_POST['message'];
$message = nl2br($_POST['message']);
mail ($_POST['to'], $_POST['subject'], $message, $headers);
$okIs = "true";
}
}
}
}
}
if ($okIs == "true"){
echo "<span class=\"groen\"><-- E-mail met succes verzonden</span>";
} else {
echo "<span class=\"rood\"><-- E-mail niet verzonden</span>";
}
}
?>
</td></tr>
</table>
</form>
</td></tr></table>
</body>
</html>
Prima script verder, maar 3 puntjes: je verstuurd niks; mail(), als je het zelf had gemaakt wist je dit en nl2br bij contenttype plain/text?
1. Ik heb het wel degelijk zelf geschreven, in die zin dat ik van verschillende plekken op internet stukjes code heb gezocht en die dan met mijn eigen kennis aangevuld. Ik begrijp voor 100% wat hier staat.
2. Ik verstuur niks? daar kan ik helemaal niet volgen, zoals ik het zie staat er:
3. Als je goed gekeken had zou je gezien hebben dat voor Content-Type text/plain een dubbele // staat, die speelt dus niet mee, dat is een overblijfseltje van vorige experimenten toen ik nog geen nl2br had en geen tinyMCE in mijn script. Sinds ik html er heb bijgebracht gebruikt het script da andere Content-Type regel, die van text/html natuurlijk. Maar goed, ik heb de regel met dubbele // volledig weggehaald, maar dat lost het probleem niet op.
Groetjes
Hansje
Verder is deze methode om te kijken of een form verzonden is:
niet de juiste. Gebruik in plaats daarvan liever:
@ Jan Koehoorn: Bedankt! Ik ga zeker nog verder experimenteren met de returnwaarde van de e-mail en de methode of de form verzonden is.
Groetjes
Hansje
Ok, ik zat op me psp dat te typen... klein beeldscherm is niet echt handig om mee scripts te lezen en te typen =P