mail script
Ik probeer een contact formulier te maken maar krijg steeds deze melding:Warning: mail() [function.mail]: SMTP server response: 501 5.5.4 Invalid Address in C:\Domains\g-force-webdesign.nl\wwwroot\contact.php on line 108
Bij dit script werkt alles wel!
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
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
<?php // Script 8.10 - register.php (second version after Script 8.9)
// This page lets people register for the site (sort of).
// Address error handing.
ini_set ('display_errors', 1);
error_reporting (E_ALL & ~E_NOTICE);
// Set the page title and include the header file.
define ('TITLE', 'Register');
require ('templates/header.html');
// Basic HTML formatting stuff.
print '<div id="leftcontent">
<h1>Registration Form</h1>
<p>Register so that you can take advantage of certain features like this, that, and the other thing.</p>';
// Check if the form has been submitted.
if ( isset ($_POST['submit'])) {
$problem = FALSE; // No problems so far.
// Check for each value.
if (empty ($_POST['username'])) {
$problem = TRUE;
print '<p>Please enter a username!</p>';
}
if (empty ($_POST['first_name'])) {
$problem = TRUE;
print '<p>Please enter your first name!</p>';
}
if (empty ($_POST['last_name'])) {
$problem = TRUE;
print '<p>Please enter your last name!</p>';
}
if (empty ($_POST['email'])) {
$problem = TRUE;
print '<p>Please enter your email address!</p>';
}
if (empty ($_POST['password1'])) {
$problem = TRUE;
print '<p>Please enter a password!</p>';
}
if ($_POST['password1'] != $_POST['password2']) {
$problem = TRUE;
print '<p>Your password did not match your confirmed password!</p>';
}
if (!$problem) { // If there weren't any problems...
print '<p>You are now registered!<br />Okay, you are not really registered but...</p>';
// Send the email.
$body = "Thank you for registering with the Elliott Smith fan club!
Your username is {$_POST['username']}. Your password is {$_POST['password1']}.";
mail ($_POST['email'], 'Thank you for registering at the Elliott Smith Fan Club!', $body, 'From: [email protected]');
} else { // Forgot a field.
print '<p>Please try again!</p>';
}
} // End of handle form IF.
// Display the form.
print '<form action="register.php" method="post"><p>';
print 'Username: <input type="text" name="username" size="20" value="' . $_POST['username'] . '" /><br />';
print 'First Name: <input type="text" name="first_name" size="20" value="' . $_POST['first_name'] . '" /><br />
Last Name: <input type="text" name="last_name" size="20" value="' . $_POST['last_name'] . '" /><br />
Email Address: <input type="text" name="email" size="20" value="' . $_POST['email'] . '" /><br />';
print 'Password: <input type="password" name="password1" size="20" /><br />
Confirm Password: <input type="password" name="password2" size="20" /><br />
<input type="submit" name="submit" value="Register!" /></p>
</form>';
// Complete the HTML formatting stuff.
print '</div>';
require ('templates/footer.html'); // Need the footer.
?>
// This page lets people register for the site (sort of).
// Address error handing.
ini_set ('display_errors', 1);
error_reporting (E_ALL & ~E_NOTICE);
// Set the page title and include the header file.
define ('TITLE', 'Register');
require ('templates/header.html');
// Basic HTML formatting stuff.
print '<div id="leftcontent">
<h1>Registration Form</h1>
<p>Register so that you can take advantage of certain features like this, that, and the other thing.</p>';
// Check if the form has been submitted.
if ( isset ($_POST['submit'])) {
$problem = FALSE; // No problems so far.
// Check for each value.
if (empty ($_POST['username'])) {
$problem = TRUE;
print '<p>Please enter a username!</p>';
}
if (empty ($_POST['first_name'])) {
$problem = TRUE;
print '<p>Please enter your first name!</p>';
}
if (empty ($_POST['last_name'])) {
$problem = TRUE;
print '<p>Please enter your last name!</p>';
}
if (empty ($_POST['email'])) {
$problem = TRUE;
print '<p>Please enter your email address!</p>';
}
if (empty ($_POST['password1'])) {
$problem = TRUE;
print '<p>Please enter a password!</p>';
}
if ($_POST['password1'] != $_POST['password2']) {
$problem = TRUE;
print '<p>Your password did not match your confirmed password!</p>';
}
if (!$problem) { // If there weren't any problems...
print '<p>You are now registered!<br />Okay, you are not really registered but...</p>';
// Send the email.
$body = "Thank you for registering with the Elliott Smith fan club!
Your username is {$_POST['username']}. Your password is {$_POST['password1']}.";
mail ($_POST['email'], 'Thank you for registering at the Elliott Smith Fan Club!', $body, 'From: [email protected]');
} else { // Forgot a field.
print '<p>Please try again!</p>';
}
} // End of handle form IF.
// Display the form.
print '<form action="register.php" method="post"><p>';
print 'Username: <input type="text" name="username" size="20" value="' . $_POST['username'] . '" /><br />';
print 'First Name: <input type="text" name="first_name" size="20" value="' . $_POST['first_name'] . '" /><br />
Last Name: <input type="text" name="last_name" size="20" value="' . $_POST['last_name'] . '" /><br />
Email Address: <input type="text" name="email" size="20" value="' . $_POST['email'] . '" /><br />';
print 'Password: <input type="password" name="password1" size="20" /><br />
Confirm Password: <input type="password" name="password2" size="20" /><br />
<input type="submit" name="submit" value="Register!" /></p>
</form>';
// Complete the HTML formatting stuff.
print '</div>';
require ('templates/footer.html'); // Need the footer.
?>
Maar hier wordt de mail verstuurd naar het adres wat wordt ingevuld dat probeer ik dus om te draaien!
Zou het kunnen komen door dat mijn host een windows server gebruikt?
Zie:http://www.e-creative.nl/faq/?View=entry&EntryID=199
Alvast bedankt
Gewijzigd op 01/01/1970 01:00:00 door Donderse
als je alleen de functie mail() aanroept krijg je deze melding ook?
Gewijzigd op 01/01/1970 01:00:00 door Donderse
Mocht je die fout dan namelijk weer krijgen is er wat met de mail client aan de hand, in dat geval zou ik even contact opnemen met je hosting.
Warning: mail() expects at least 3 parameters, 0 given in C:\Domains\g-force-webdesign.nl\wwwroot\contact2.php on line 108
Het is handiger om een aparte emailclasse te gebruiken voor dit soort zaken, zie bv. Swift Mailer. Kinderlijk eenvoudig in het gebruik, veilig en goed te onderhouden.
mail("jouemailadres@", "mail functie werkt!", "mail functie werkt!");
Pascal schreef op 04.11.2007 16:47:
En als dan je hele systeem werkt, de boel opnieuw gaan schrijven met de juiste gegevens. Yeah, right. Dat gaat dus gegarandeerd verkeerd en je vergeet overal de code aan te passen met als gevolg dat bepaalde emails eeuwig in de spambak terecht komen. Goh, hoe zou dat nu kunnen?daar geef ik frank gelijk in maar het lijkt mij logisch dat als je aan het testen bent je een email adres gebruikt die niet aan allerlei antispamfilters zit gekoppeld. En gebruik zelf idd ook altijd mail classes om de headers lekker makelijk toe te voegen.
mail("jouemailadres@", "mail functie werkt!", "mail functie werkt!");
mail("jouemailadres@", "mail functie werkt!", "mail functie werkt!");
Zet gewoon de boel in 1x goed in je code, dan hoef je helemaal niks aan te passen.
pgFrank schreef op 04.11.2007 16:42:
Deze emails gaan 9 van de 10x in de spambak terechtkomen, headers ontbreken in zijn geheel.
Het is handiger om een aparte emailclasse te gebruiken voor dit soort zaken, zie bv. Swift Mailer. Kinderlijk eenvoudig in het gebruik, veilig en goed te onderhouden.
Het is handiger om een aparte emailclasse te gebruiken voor dit soort zaken, zie bv. Swift Mailer. Kinderlijk eenvoudig in het gebruik, veilig en goed te onderhouden.
Ok heb ik gedownload en op de website gezet zoals in die INSTALL stond maar wat moet ik er dan vervolgens mee?
Daar ben ik het helemaal met je eens Frank, alleen was de vraag van Donderse hoe hij zijn probleem moet oplossen niet hoe hij zijn manier van aanpakken moet veranderen. Ik wadeer je kennis en uitleg maar vraag me af of het nodig is om het op deze manier te doen (moet je altijd nog zelf weten).
Ja er blijft 1 probleem en dat is dat ik er niet veel van leer om een bestaand script te gebruiken aangezien ik de mail functie in meerdere scripts wil gebruiken niet alleen in een contact formulier
Wil je weten hoe de classe werkt, dan ga je deze uitspitten.
Haha ik ben nog maar een beginner zo'n klasse doorspitten kan ik wel proberen maar of ik het ga begrijpen is een tweede
Ik hoef niet te weten hoe het van binnen werkt, als het maar werkt. En veilig is! En dat is mooi van veelgebruikte classes, heel veel mensen werken er mee en testen deze classes, dan komen fouten ook veel sneller aan het licht. Wanneer jij zelf een classe bouwt en jij de enige bent die hem gebruikt, gaat het je onvoorstelbaar veel tijd kosten om het echt van A tot Z te testen en te kraken.
dat begrijp ik maar ik kon uit die handleiding niet echt opmaken hoe ik het kan gebruiken
Donderse schreef op 04.11.2007 17:33:
Dat is wat vaag, hier kan niemand wat mee.dat begrijp ik maar ik kon uit die handleiding niet echt opmaken hoe ik het kan gebruiken
Ga met de voorbeelden aan de slag, dan wordt het je vanzelf wel duidelijk.
Zie bv. http://www.swiftmailer.org/wikidocs/v3/tutorials/basic, waar $swift en $message een object aanmaken en vervolgens de methode send() de boel verstuurd. 3 regeltjes code en 2 regeltjes met een require om de classe te includen in het huidige script.
Ok maar hoe krijgt $message nu de waarde van een bericht? Moet dat via een formulier dan??
Donderse schreef op 04.11.2007 18:47:
Dat mag je zelf weten, zie ook de andere voorbeelden in de handleiding.Ok maar hoe krijgt $message nu de waarde van een bericht? Moet dat via een formulier dan??
Hmm het zal vast goed werken maar ik snap het allemaal helemaal niet ik heb mijn probleem al opgelost door php versie 4 te gebruiken in plaats van 5 nu werkt het script naar behoren! Maar in iedergeval bedankt hoor.
Ik zou dus (vooral nu) niet gaan overstappen naar PHP4. Die is veroudert en al verworpen door de makers zelf (www.php.net). PHP5 is tha future :)