error mail functie
Ik heb een ledeninlogsysteem en krijg bij het aanmelden als lid reeds een melding dat er geen bevestigingsemail verstuurd kon worden. In de database zie ik wel dat de member is aangemaakt met zijn wachtwoord. Als ik inlog met de gegevens van de member krijg ik de melding dat het account nog niet is bevestigd en kan "email opnieuw versturen klikken". Als ik dat doe krijg ik de volgende melding:
Warning: mail() [function.mail]: SMTP server response: 501 <naam <[email protected]>>: "@" or "." expected after "naam" in C:\wamp\www\bevestigen.php on line 63
De bevestigingsmail kon niet verzonden worden.
Neem contact op met de webmaster.
In de php ini heb ik wel het SMTP aangepast.
bevestigen.php:
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
$BesturingBestand = "besturing.php";
$BovenBestand = "boven.php";
$OnderBestand = "onder.php";
// Verander dit als de bestanden ergens anders staan.
// Hierna hoef je niets te veranderen!
// -------------------------------------------------
if(!file_exists($BesturingBestand)) { die("$BesturingBestand kan niet geopend worden!<br><br><i>Webmaster: verander dit bovenin $PHP_SELF.</i>"); }
if(!file_exists($BovenBestand)) { die("$BovenBestand kan niet geopend worden!<br><br><i>Webmaster: verander dit bovenin $PHP_SELF.</i>"); }
if(!file_exists($OnderBestand)) { die("$OnderBestand kan niet geopend worden!<br><br><i>Webmaster: verander dit bovenin $PHP_SELF.</i>"); }
include($BesturingBestand);
include($BovenBestand);
?>
$BesturingBestand = "besturing.php";
$BovenBestand = "boven.php";
$OnderBestand = "onder.php";
// Verander dit als de bestanden ergens anders staan.
// Hierna hoef je niets te veranderen!
// -------------------------------------------------
if(!file_exists($BesturingBestand)) { die("$BesturingBestand kan niet geopend worden!<br><br><i>Webmaster: verander dit bovenin $PHP_SELF.</i>"); }
if(!file_exists($BovenBestand)) { die("$BovenBestand kan niet geopend worden!<br><br><i>Webmaster: verander dit bovenin $PHP_SELF.</i>"); }
if(!file_exists($OnderBestand)) { die("$OnderBestand kan niet geopend worden!<br><br><i>Webmaster: verander dit bovenin $PHP_SELF.</i>"); }
include($BesturingBestand);
include($BovenBestand);
?>
<h3>Bevestigen</h3>
<br>
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
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
<?php
if(!$ActiveerBevestigen) {
echo("Het bevestigen van accounts is niet ingeschakeld.");
}
else {
$id = intval($_GET["id"]);
if($login) {
echo("<b>Je hebt je account al bevestigd met gebruikersnaam $Lid->Gebruikersnaam!</b><br>Log uit om een ander account te bevestigen.");
}
elseif($id && $_GET["c"] && $Lid = mysql_fetch_object(mysql_query("SELECT ID,Gebruikersnaam,Bevestigen FROM Leden WHERE ID = '$id'"))) {
if($Lid->Bevestigen != $_GET["c"]) {
echo("<b style='color:red'>De bevestigingscode is onjuist!</b>");
}
else {
mysql_query("UPDATE $TabelLeden SET Bevestigen = '' WHERE ID = '$Lid->ID'") or die(mysql_error());
echo("<b style='color:green'>Je account met gebruikersnaam <i>$Lid->Gebruikersnaam</i> is succesvol geactiveerd!</b>");
}
}
elseif($_POST["mailen"] && ($_POST["gebruikersnaam"] || $_POST["mail"])) {
sleep(1);
if($_POST["gebruikersnaam"]) {
$Lid = mysql_fetch_object(mysql_query("SELECT ID,Naam,Mail,Bevestigen,Gebruikersnaam FROM Leden WHERE Gebruikersnaam = '{$_POST["gebruikersnaam"]}'"));
}
else {
$Lid = mysql_fetch_object(mysql_query("SELECT ID,Naam,Mail,Bevestigen,Gebruikersnaam FROM Leden WHERE Mail = '{$_POST["mail"]}'"));
}
if(!$Lid) {
echo("<b style='color:red'>Het account is niet gevonden!</b>");
}
elseif(!$Lid->Bevestigen) {
echo("<b style='color:red'>Het account is al bevestigd!</b>");
}
else {
if(mail("$Lid->Naam <$Lid->Mail>","$JouwWebsiteNaam - Bevestigen","Beste $Lid->Naam,\n\nJe hebt nogmaals je bevestigingscode aangevraagd voor je account met gebruikersnaam $Lid->Gebruikersnaam .\n\nGa naar de volgende locatie om het aanmelden te bevestigen:\n$LedensysteemLocatie"."bevestigen.php?id=$Lid->ID&c=$Lid->Bevestigen\n\nVeel plezier op de site!\n\n$JouwWebsiteNaam\n$JouwWebsiteUrl","From: $JouwWebsiteNaam <$JouwMailAdres>")) {
echo("<b>Er is een bevestigingsmail gestuurd naar $Lid->Mail.<BR><BR>Klik op de link in de mail om je account te activeren.</b>");
}
else {
echo("<b>De bevestigingsmail kon niet verzonden worden.<br>Neem contact op met de webmaster.</b>");
}
}
}
else {
echo("<form method='post'>
Vul een van de twee velden in:<br>
<input type=radio name=hoe value=gebruikersnaam checked> Gebruikersnaam: <input type=text name=gebruikersnaam size=30><br>
<input type=radio name=hoe value=mail> E-mail adres: <input type=text name=mail size=30><br><br>
<input type=submit value='Bevestigingsmail sturen'>
<input type=hidden name=mailen value=1>
</form>");
}
}
?>
if(!$ActiveerBevestigen) {
echo("Het bevestigen van accounts is niet ingeschakeld.");
}
else {
$id = intval($_GET["id"]);
if($login) {
echo("<b>Je hebt je account al bevestigd met gebruikersnaam $Lid->Gebruikersnaam!</b><br>Log uit om een ander account te bevestigen.");
}
elseif($id && $_GET["c"] && $Lid = mysql_fetch_object(mysql_query("SELECT ID,Gebruikersnaam,Bevestigen FROM Leden WHERE ID = '$id'"))) {
if($Lid->Bevestigen != $_GET["c"]) {
echo("<b style='color:red'>De bevestigingscode is onjuist!</b>");
}
else {
mysql_query("UPDATE $TabelLeden SET Bevestigen = '' WHERE ID = '$Lid->ID'") or die(mysql_error());
echo("<b style='color:green'>Je account met gebruikersnaam <i>$Lid->Gebruikersnaam</i> is succesvol geactiveerd!</b>");
}
}
elseif($_POST["mailen"] && ($_POST["gebruikersnaam"] || $_POST["mail"])) {
sleep(1);
if($_POST["gebruikersnaam"]) {
$Lid = mysql_fetch_object(mysql_query("SELECT ID,Naam,Mail,Bevestigen,Gebruikersnaam FROM Leden WHERE Gebruikersnaam = '{$_POST["gebruikersnaam"]}'"));
}
else {
$Lid = mysql_fetch_object(mysql_query("SELECT ID,Naam,Mail,Bevestigen,Gebruikersnaam FROM Leden WHERE Mail = '{$_POST["mail"]}'"));
}
if(!$Lid) {
echo("<b style='color:red'>Het account is niet gevonden!</b>");
}
elseif(!$Lid->Bevestigen) {
echo("<b style='color:red'>Het account is al bevestigd!</b>");
}
else {
if(mail("$Lid->Naam <$Lid->Mail>","$JouwWebsiteNaam - Bevestigen","Beste $Lid->Naam,\n\nJe hebt nogmaals je bevestigingscode aangevraagd voor je account met gebruikersnaam $Lid->Gebruikersnaam .\n\nGa naar de volgende locatie om het aanmelden te bevestigen:\n$LedensysteemLocatie"."bevestigen.php?id=$Lid->ID&c=$Lid->Bevestigen\n\nVeel plezier op de site!\n\n$JouwWebsiteNaam\n$JouwWebsiteUrl","From: $JouwWebsiteNaam <$JouwMailAdres>")) {
echo("<b>Er is een bevestigingsmail gestuurd naar $Lid->Mail.<BR><BR>Klik op de link in de mail om je account te activeren.</b>");
}
else {
echo("<b>De bevestigingsmail kon niet verzonden worden.<br>Neem contact op met de webmaster.</b>");
}
}
}
else {
echo("<form method='post'>
Vul een van de twee velden in:<br>
<input type=radio name=hoe value=gebruikersnaam checked> Gebruikersnaam: <input type=text name=gebruikersnaam size=30><br>
<input type=radio name=hoe value=mail> E-mail adres: <input type=text name=mail size=30><br><br>
<input type=submit value='Bevestigingsmail sturen'>
<input type=hidden name=mailen value=1>
</form>");
}
}
?>
Wat gaat hier nu fout en of wat is er niet goed eventueel op regel 63?
gr Nuet
Script is gesplitst zie ik: regel 63 in de foutmelding is nu regel 44
maar kan je die variabelen uit de mailfunctie eens echo-en? Ik vermoed dat je een fout mailadres hebt, die niet juist geschreven is.
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
$BesturingBestand = "besturing.php";
$BovenBestand = "boven.php";
$OnderBestand = "onder.php";
// Verander dit als de bestanden ergens anders staan.
// Hierna hoef je niets te veranderen!
// -------------------------------------------------
if(!file_exists($BesturingBestand)) { die("$BesturingBestand kan niet geopend worden!<br><br><i>Webmaster: verander dit bovenin $PHP_SELF.</i>"); }
if(!file_exists($BovenBestand)) { die("$BovenBestand kan niet geopend worden!<br><br><i>Webmaster: verander dit bovenin $PHP_SELF.</i>"); }
if(!file_exists($OnderBestand)) { die("$OnderBestand kan niet geopend worden!<br><br><i>Webmaster: verander dit bovenin $PHP_SELF.</i>"); }
include($BesturingBestand);
include($BovenBestand);
?>
$BesturingBestand = "besturing.php";
$BovenBestand = "boven.php";
$OnderBestand = "onder.php";
// Verander dit als de bestanden ergens anders staan.
// Hierna hoef je niets te veranderen!
// -------------------------------------------------
if(!file_exists($BesturingBestand)) { die("$BesturingBestand kan niet geopend worden!<br><br><i>Webmaster: verander dit bovenin $PHP_SELF.</i>"); }
if(!file_exists($BovenBestand)) { die("$BovenBestand kan niet geopend worden!<br><br><i>Webmaster: verander dit bovenin $PHP_SELF.</i>"); }
if(!file_exists($OnderBestand)) { die("$OnderBestand kan niet geopend worden!<br><br><i>Webmaster: verander dit bovenin $PHP_SELF.</i>"); }
include($BesturingBestand);
include($BovenBestand);
?>
<h3>Stuur e-mail</h3>
<br>
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
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
<?php
if(!$login) {
echo("Log in om e-mail te sturen!");
}
elseif(!$_GET["id"]) {
echo("Er is een fout opgetreden. Probeer het opnieuw.");
}
else {
$id = intval($_GET["id"]);
$Lid = mysql_fetch_object(mysql_query("SELECT ID,Gebruikersnaam,Naam,Mail,Status,MailAdresZien FROM Leden WHERE ID = '$id'"));
if(!$Lid) {
echo("Het lid is niet gevonden!");
}
else {
if($_POST["actie"]) {
if(@mail("$Lid->Naam <$Lid->Mail>",stripslashes($_POST["Onderwerp"]),stripslashes($_POST["Bericht"])."\n\nAfzender: $InlogLid->Naam, gebruikersnaam $InlogLid->Gebruikersnaam, $InlogLid->Mail\nDeze e-mail is verstuurd via $JouwWebsiteNaam, $JouwWebsiteUrl ","From: $InlogLid->Naam <$InlogLid->Mail>")) {
echo("<b>De e-mail is succesvol verstuurd naar ".Lid($id,$Lid->Gebruikersnaam,$Lid->Naam,$Lid->Status)."!</b><br><br>");
}
else {
echo("<b>Het e-mailtje kon niet verstuurd worden!<br>Probeer het later nog eens.</b><br><br>");
}
}
else {
echo("<table cellpadding=5><form method='post'>
<tr><td>Van:</td><td>".Lid($InlogLid->ID,$InlogLid->Gebruikersnaam,$InlogLid->Naam,$InlogLid->Status)." (gebruikersnaam $InlogLid->Gebruikersnaam), <a href='mailto:$InlogLid->Mail'>$InlogLid->Mail</a></td></tr>
<tr><td>Naar:</td><td>".Lid($id,$Lid->Gebruikersnaam,$Lid->Naam,$Lid->Status)." (gebruikersnaam $Lid->Gebruikersnaam)");
if($Lid->MailAdresZien) { echo(", <a href='mailto:$Lid->Mail'>$Lid->Mail</a>"); }
echo("</td></tr>
<tr><td>Onderwerp:</td><td><input type='text' name='Onderwerp'></td></tr>
<tr><td valign=top>Bericht:</td><td><textarea cols=40 rows=10 name='Bericht'></textarea></td></tr>
<tr><td></td><td><input type='hidden' name='lid' value='$lid'>
<input type=submit value='Verstuur e-mail'>
<input type=hidden name=actie value=1>
</td></tr>
</form></table>");
}
}
}
include($OnderBestand);
?>
if(!$login) {
echo("Log in om e-mail te sturen!");
}
elseif(!$_GET["id"]) {
echo("Er is een fout opgetreden. Probeer het opnieuw.");
}
else {
$id = intval($_GET["id"]);
$Lid = mysql_fetch_object(mysql_query("SELECT ID,Gebruikersnaam,Naam,Mail,Status,MailAdresZien FROM Leden WHERE ID = '$id'"));
if(!$Lid) {
echo("Het lid is niet gevonden!");
}
else {
if($_POST["actie"]) {
if(@mail("$Lid->Naam <$Lid->Mail>",stripslashes($_POST["Onderwerp"]),stripslashes($_POST["Bericht"])."\n\nAfzender: $InlogLid->Naam, gebruikersnaam $InlogLid->Gebruikersnaam, $InlogLid->Mail\nDeze e-mail is verstuurd via $JouwWebsiteNaam, $JouwWebsiteUrl ","From: $InlogLid->Naam <$InlogLid->Mail>")) {
echo("<b>De e-mail is succesvol verstuurd naar ".Lid($id,$Lid->Gebruikersnaam,$Lid->Naam,$Lid->Status)."!</b><br><br>");
}
else {
echo("<b>Het e-mailtje kon niet verstuurd worden!<br>Probeer het later nog eens.</b><br><br>");
}
}
else {
echo("<table cellpadding=5><form method='post'>
<tr><td>Van:</td><td>".Lid($InlogLid->ID,$InlogLid->Gebruikersnaam,$InlogLid->Naam,$InlogLid->Status)." (gebruikersnaam $InlogLid->Gebruikersnaam), <a href='mailto:$InlogLid->Mail'>$InlogLid->Mail</a></td></tr>
<tr><td>Naar:</td><td>".Lid($id,$Lid->Gebruikersnaam,$Lid->Naam,$Lid->Status)." (gebruikersnaam $Lid->Gebruikersnaam)");
if($Lid->MailAdresZien) { echo(", <a href='mailto:$Lid->Mail'>$Lid->Mail</a>"); }
echo("</td></tr>
<tr><td>Onderwerp:</td><td><input type='text' name='Onderwerp'></td></tr>
<tr><td valign=top>Bericht:</td><td><textarea cols=40 rows=10 name='Bericht'></textarea></td></tr>
<tr><td></td><td><input type='hidden' name='lid' value='$lid'>
<input type=submit value='Verstuur e-mail'>
<input type=hidden name=actie value=1>
</td></tr>
</form></table>");
}
}
}
include($OnderBestand);
?>
Volgens mij stuur je mailtjes niet goed, From moet niet als argument (zie mail functie)
in de php ini staat alles goed net nagekeken...: SMTP en sendmail-from staat goed
[email protected]>>
Dit is natuurlijk geen geldig adres.
Verder zie opmerking van Steen.
<naam <Dit is natuurlijk geen geldig adres.
Verder zie opmerking van Steen.
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -