PHP mail functie werkt maar ontvang geen mail
https://www.youtube.com/watch?v=a8x-pdQM9Cc&index=6&list=PLlkGN-8wjPHV41Y12LFD8uttbAd1d_ohe
De php mail() functie werkt wel, omdat hij true als waarde terug geeft. Maar ik ontvang geen email als ik een account registreer. Dit had ik dus getest met de volgende stukje code:
Maar ik weet nog steeds niet hoe ik dit probleem kan fixen. Kan iemand me misschien helpen?
Hier is de rest van mijn code die ik gebruik:
Ook vind ik het geen probleem als iemand me wilt helpen via Skype. Omdat ik dat ook waardeer :).
Mvg,
superky
Hoi ik heb een vraagje over een tutorial die ik ging volgen waarbij er de php mail() functie werd gebruikt. Hier is de link van de tutorial: De php mail() functie werkt wel, omdat hij true als waarde terug geeft. Maar ik ontvang geen email als ik een account registreer. Dit had ik dus getest met de volgende stukje code:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
if(mail($to, $subject, $message, $headers)){
echo "Email has been sent to<b> ".$to."</b>";
}
else{
echo "Failed sending message to <b> ".$to."</b>.";
}
echo "Email has been sent to<b> ".$to."</b>";
}
else{
echo "Failed sending message to <b> ".$to."</b>.";
}
Maar ik weet nog steeds niet hoe ik dit probleem kan fixen. Kan iemand me misschien helpen?
Hier is de rest van mijn code die ik gebruik:
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
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
// END FORM DATA ERROR HANDLING
// Begin Insertion of data into the database
// Hash the password and apply your own mysterious unique salt
$cryptpass = crypt($p); //<-- dit wordt een 30 bit/characters cryptic hash
include_once ("php_includes/randStrGen.php");
$p_hash = randStrGen(20)."$cryptpass".randStrGen(20);
// Add user info into the database table for the main site table
$sql = "INSERT INTO users (username, email, password, gender, country, ip, signup, lastlogin, notescheck)
VALUES('$u','$e','$p_hash','$g','$c','$ip',now(),now(),now())";
$query = mysqli_query($db_conx, $sql); //<-- Dit runt de query
$uid = mysqli_insert_id($db_conx);
// Establish their row in the useroptions table
$sql = "INSERT INTO useroptions (id, username, background) VALUES ('$uid','$u','original')";
$query = mysqli_query($db_conx, $sql);
// Create directory(folder) to hold each user's files(pics, MP3s, etc.)
if (!file_exists("user/$u")) { //Als de folder met de naam van de user niet bestaat, dan maken we die folder aan.
mkdir("user/$u", 0755); //0755 zijn de folder permissies oftewel chmod
}
// Email the user their activation link
$to = "$e";
$from = "[email protected]";
/*als je een email gebruikt die ook op de server(van je host (=yomacho.host56.com)) draait
*en waar je website ook draait. Dan ontvangt de user een email in zijn inbox en niet in zijn junkbox. */
$subject = 'Facebook Clone Account Activation';
$message = '<!DOCTYPE html><html><head><meta charset="UTF-8"><title>Facebook Clone Message</title></head><body style="margin:0px;
font-family:Tahoma, Geneva, sans-serif;"><div style="padding:10px; background:#333; font-size:24px; color:#CCC;">
<a href="http://www.yoursitename.com"><img src="http://www.yoursitename.com/images/logo.png" width="36" height="30" alt="Facebook Clone"
style="border:none; float:left;"></a>yoursitename Account Activation</div><div style="padding:24px; font-size:17px;">Hello '.$u.',<br /><br />
Click the link below to activate your account when ready:<br /><br /><a href="http://http://yomacho.host56.com/activation.php?id='.$uid.'&u='.$u.'&e='.
$e.'&p='.$p_hash.'">Click here to activate your account now</a><br /><br />Login after successful activation using your:<br />* E-mail Address:
<b>'.$e.'</b></div></body></html>';
$headers = "From: $fromn";
$headers .= "MIME-Version: 1.0n";
$headers .= "Content-type: text/html; charset=iso-8859-1n";
//mail($to, $subject, $message, $headers);
if(mail($to, $subject, $message, $headers)){
echo "Email has been sent to<b> ".$to."</b>";
}
else{
echo "Failed sending message to <b> ".$to."</b>.";
}
echo "signup_success";
exit();
// Begin Insertion of data into the database
// Hash the password and apply your own mysterious unique salt
$cryptpass = crypt($p); //<-- dit wordt een 30 bit/characters cryptic hash
include_once ("php_includes/randStrGen.php");
$p_hash = randStrGen(20)."$cryptpass".randStrGen(20);
// Add user info into the database table for the main site table
$sql = "INSERT INTO users (username, email, password, gender, country, ip, signup, lastlogin, notescheck)
VALUES('$u','$e','$p_hash','$g','$c','$ip',now(),now(),now())";
$query = mysqli_query($db_conx, $sql); //<-- Dit runt de query
$uid = mysqli_insert_id($db_conx);
// Establish their row in the useroptions table
$sql = "INSERT INTO useroptions (id, username, background) VALUES ('$uid','$u','original')";
$query = mysqli_query($db_conx, $sql);
// Create directory(folder) to hold each user's files(pics, MP3s, etc.)
if (!file_exists("user/$u")) { //Als de folder met de naam van de user niet bestaat, dan maken we die folder aan.
mkdir("user/$u", 0755); //0755 zijn de folder permissies oftewel chmod
}
// Email the user their activation link
$to = "$e";
$from = "[email protected]";
/*als je een email gebruikt die ook op de server(van je host (=yomacho.host56.com)) draait
*en waar je website ook draait. Dan ontvangt de user een email in zijn inbox en niet in zijn junkbox. */
$subject = 'Facebook Clone Account Activation';
$message = '<!DOCTYPE html><html><head><meta charset="UTF-8"><title>Facebook Clone Message</title></head><body style="margin:0px;
font-family:Tahoma, Geneva, sans-serif;"><div style="padding:10px; background:#333; font-size:24px; color:#CCC;">
<a href="http://www.yoursitename.com"><img src="http://www.yoursitename.com/images/logo.png" width="36" height="30" alt="Facebook Clone"
style="border:none; float:left;"></a>yoursitename Account Activation</div><div style="padding:24px; font-size:17px;">Hello '.$u.',<br /><br />
Click the link below to activate your account when ready:<br /><br /><a href="http://http://yomacho.host56.com/activation.php?id='.$uid.'&u='.$u.'&e='.
$e.'&p='.$p_hash.'">Click here to activate your account now</a><br /><br />Login after successful activation using your:<br />* E-mail Address:
<b>'.$e.'</b></div></body></html>';
$headers = "From: $fromn";
$headers .= "MIME-Version: 1.0n";
$headers .= "Content-type: text/html; charset=iso-8859-1n";
//mail($to, $subject, $message, $headers);
if(mail($to, $subject, $message, $headers)){
echo "Email has been sent to<b> ".$to."</b>";
}
else{
echo "Failed sending message to <b> ".$to."</b>.";
}
echo "signup_success";
exit();
Ook vind ik het geen probleem als iemand me wilt helpen via Skype. Omdat ik dat ook waardeer :).
Mvg,
superky
Je hebt wel een mail server geinstalleerd? Als je lokaal werkt is het antwoord waarschijnlijk nee, en dan zal je nooit een mail ontvangen.
Dus bij voorbaat via dit topic, tenzij het een vacature is ;-)
Ik zou eerst maar eens hier beginnen:
http://phpwiki.santhe.nl/index.php?title=De_juiste_mailheaders
$from = ......
$headers = "From: $fromn"; Met een extra n?
Geef wat meer headers mee:
http://phpwiki.santhe.nl/index.php?title=De_juiste_mailheaders
Met wat voor mailadres test je? Live? gmail?
ps: http://yomacho.host56.com/ en http://host56.com worden door Trend Micro geblokkeerd "Malicious website blocked"
Rating: Dangerous Verified fraudulent page or threat source.
@SanThe:
Tegenwoordig word er vaker gecontroleerd op reverse DNS, scheelt weer spampunten bij de grote jongens.
Lijkt mij een toevoeging op je huidige wiki pagina
- SanThe - op 13/08/2014 17:53:49:
Zie in de mail => <a href="http://http://
$from = ......
$headers = "From: $fromn"; Met een extra n?
Geef wat meer headers mee:
http://phpwiki.santhe.nl/index.php?title=De_juiste_mailheaders
$from = ......
$headers = "From: $fromn"; Met een extra n?
Geef wat meer headers mee:
http://phpwiki.santhe.nl/index.php?title=De_juiste_mailheaders
Dat komt niet door mij dat komt door de website hehe :P. Zie hier een screenshot van mijn tekst editor:
Bij die onderste twee regels staan ook zomaar een "n" achter geplakt haha, komt door de site dus.
Toevoeging op 13/08/2014 18:47:34:
Elmar vH op 13/08/2014 18:08:36:
"Maar ik ontvang geen email als ik een account registreer"
Met wat voor mailadres test je? Live? gmail?
ps: http://yomacho.host56.com/ en http://host56.com worden door Trend Micro geblokkeerd "Malicious website blocked"
Rating: Dangerous Verified fraudulent page or threat source.
@SanThe:
Tegenwoordig word er vaker gecontroleerd op reverse DNS, scheelt weer spampunten bij de grote jongens.
Lijkt mij een toevoeging op je huidige wiki pagina
Met wat voor mailadres test je? Live? gmail?
ps: http://yomacho.host56.com/ en http://host56.com worden door Trend Micro geblokkeerd "Malicious website blocked"
Rating: Dangerous Verified fraudulent page or threat source.
@SanThe:
Tegenwoordig word er vaker gecontroleerd op reverse DNS, scheelt weer spampunten bij de grote jongens.
Lijkt mij een toevoeging op je huidige wiki pagina
Ik gebruik een hotmail emailadres. En ik heb al andere mail templates gebruikt, om te checken of de php() functie op mijn host werken. En ze werken inderdaad gewoon. Alleen in de code die ik aan jullie liet zien, werkt het niet om de één of andere reden.
Toevoeging op 13/08/2014 18:52:23:
Ik zal even mijn headers aanpassen en weer aan jullie weten wat ik geprobeerd heb.
Toevoeging op 13/08/2014 19:13:12:
Nee helaas werkt de php mail() functie nog niet, terwijl ik wel de code heb aangepast:
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
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
// END FORM DATA ERROR HANDLING
// Begin Insertion of data into the database
// Hash the password and apply your own mysterious unique salt
$cryptpass = crypt($p); //<-- dit wordt een 30 bit/characters cryptic hash
include_once ("php_includes/randStrGen.php");
$p_hash = randStrGen(20)."$cryptpass".randStrGen(20);
// Add user info into the database table for the main site table
$sql = "INSERT INTO users (username, email, password, gender, country, ip, signup, lastlogin, notescheck)
VALUES('$u','$e','$p_hash','$g','$c','$ip',now(),now(),now())";
$query = mysqli_query($db_conx, $sql); //<-- Dit runt de query
$uid = mysqli_insert_id($db_conx);
// Establish their row in the useroptions table
$sql = "INSERT INTO useroptions (id, username, background) VALUES ('$uid','$u','original')";
$query = mysqli_query($db_conx, $sql);
// Create directory(folder) to hold each user's files(pics, MP3s, etc.)
if (!file_exists("user/$u")) { //Als de folder met de naam van de user niet bestaat, dan maken we die folder aan.
mkdir("user/$u", 0755); //0755 zijn de folder permissies oftewel chmod
}
// Email the user their activation link
$to = "$e";
$from = "[email protected]";
/*als je een email gebruikt die ook op de server(van je host (=yomacho.host56.com)) draait
*en waar je website ook draait. Dan ontvangt de user een email in zijn inbox en niet in zijn junkbox. */
$subject = 'Facebook Clone Account Activation';
$message = '<!DOCTYPE html><html><head><meta charset="UTF-8"><title>Facebook Clone Message</title></head><body style="margin:0px;
font-family:Tahoma, Geneva, sans-serif;"><div style="padding:10px; background:#333; font-size:24px; color:#CCC;">
<a href="http://www.yoursitename.com"><img src="http://www.yoursitename.com/images/logo.png" width="36" height="30" alt="Facebook Clone"
style="border:none; float:left;"></a>yoursitename Account Activation</div><div style="padding:24px; font-size:17px;">Hello '.$u.',<br /><br />
Click the link below to activate your account when ready:<br /><br /><a href="http://http://yomacho.host56.com/activation.php?id='.$uid.'&u='.$u.'&e='.
$e.'&p='.$p_hash.'">Click here to activate your account now</a><br /><br />Login after successful activation using your:<br />* E-mail Address:
<b>'.$e.'</b></div></body></html>';
// Geef GELDIGE adressen op
// Een korte benaming voor jouw website
$website_naam = 'Facebook clone';
// Jouw eigen geldige emailadres
$eigen_emailadres = '[email protected]';
// Een geldig emailadres voor errors
$error_emailadres = '[email protected]';
// De naam van de verzender
$naam_verzender = 'superky';
// Het geldige emailadres van de afzender
$email_verzender = '[email protected]';
// Een geldig emailadres of helemaal leeg laten
$bcc_emailadres = '';
// HTML mail? True/False
$html = true;
// De headers samenstellen
$headers = 'From: ' . $website_naam . ' <' . $eigen_emailadres . '>' . "\r\n";
$headers .= 'Reply-To: ' . $naam_verzender . ' <' . $email_verzender . '>' . "\r\n";
$headers .= 'Return-Path: Mail-Error <' . $error_emailadres . '>' . "\r\n";
$headers .= ($bcc_emailadres != '') ? 'Bcc: ' . $bcc_emailadres . "\r\n" : '';
$headers .= 'X-Mailer: PHP/' . phpversion() . "\r\n";
$headers .= 'X-Priority: Normal' . "\r\n";
$headers .= ($html) ? 'MIME-Version: 1.0' . "\r\n" : '';
$headers .= ($html) ? 'Content-type: text/html; charset=iso-8859-1' . "\r\n" : '';
//$headers = "From: $from\n";
//$headers .= "MIME-Version: 1.0\n";
//$headers .= "Content-type: text/html; charset=iso-8859-1\n";
//mail($to, $subject, $message, $headers);
if(mail($to, $subject, $message, $headers)){
echo "Email has been sent to<b> ".$to."</b>";
}
else{
echo "Failed sending message to <b> ".$to."</b>.";
}
echo "signup_success";
exit();
[\code]
// Begin Insertion of data into the database
// Hash the password and apply your own mysterious unique salt
$cryptpass = crypt($p); //<-- dit wordt een 30 bit/characters cryptic hash
include_once ("php_includes/randStrGen.php");
$p_hash = randStrGen(20)."$cryptpass".randStrGen(20);
// Add user info into the database table for the main site table
$sql = "INSERT INTO users (username, email, password, gender, country, ip, signup, lastlogin, notescheck)
VALUES('$u','$e','$p_hash','$g','$c','$ip',now(),now(),now())";
$query = mysqli_query($db_conx, $sql); //<-- Dit runt de query
$uid = mysqli_insert_id($db_conx);
// Establish their row in the useroptions table
$sql = "INSERT INTO useroptions (id, username, background) VALUES ('$uid','$u','original')";
$query = mysqli_query($db_conx, $sql);
// Create directory(folder) to hold each user's files(pics, MP3s, etc.)
if (!file_exists("user/$u")) { //Als de folder met de naam van de user niet bestaat, dan maken we die folder aan.
mkdir("user/$u", 0755); //0755 zijn de folder permissies oftewel chmod
}
// Email the user their activation link
$to = "$e";
$from = "[email protected]";
/*als je een email gebruikt die ook op de server(van je host (=yomacho.host56.com)) draait
*en waar je website ook draait. Dan ontvangt de user een email in zijn inbox en niet in zijn junkbox. */
$subject = 'Facebook Clone Account Activation';
$message = '<!DOCTYPE html><html><head><meta charset="UTF-8"><title>Facebook Clone Message</title></head><body style="margin:0px;
font-family:Tahoma, Geneva, sans-serif;"><div style="padding:10px; background:#333; font-size:24px; color:#CCC;">
<a href="http://www.yoursitename.com"><img src="http://www.yoursitename.com/images/logo.png" width="36" height="30" alt="Facebook Clone"
style="border:none; float:left;"></a>yoursitename Account Activation</div><div style="padding:24px; font-size:17px;">Hello '.$u.',<br /><br />
Click the link below to activate your account when ready:<br /><br /><a href="http://http://yomacho.host56.com/activation.php?id='.$uid.'&u='.$u.'&e='.
$e.'&p='.$p_hash.'">Click here to activate your account now</a><br /><br />Login after successful activation using your:<br />* E-mail Address:
<b>'.$e.'</b></div></body></html>';
// Geef GELDIGE adressen op
// Een korte benaming voor jouw website
$website_naam = 'Facebook clone';
// Jouw eigen geldige emailadres
$eigen_emailadres = '[email protected]';
// Een geldig emailadres voor errors
$error_emailadres = '[email protected]';
// De naam van de verzender
$naam_verzender = 'superky';
// Het geldige emailadres van de afzender
$email_verzender = '[email protected]';
// Een geldig emailadres of helemaal leeg laten
$bcc_emailadres = '';
// HTML mail? True/False
$html = true;
// De headers samenstellen
$headers = 'From: ' . $website_naam . ' <' . $eigen_emailadres . '>' . "\r\n";
$headers .= 'Reply-To: ' . $naam_verzender . ' <' . $email_verzender . '>' . "\r\n";
$headers .= 'Return-Path: Mail-Error <' . $error_emailadres . '>' . "\r\n";
$headers .= ($bcc_emailadres != '') ? 'Bcc: ' . $bcc_emailadres . "\r\n" : '';
$headers .= 'X-Mailer: PHP/' . phpversion() . "\r\n";
$headers .= 'X-Priority: Normal' . "\r\n";
$headers .= ($html) ? 'MIME-Version: 1.0' . "\r\n" : '';
$headers .= ($html) ? 'Content-type: text/html; charset=iso-8859-1' . "\r\n" : '';
//$headers = "From: $from\n";
//$headers .= "MIME-Version: 1.0\n";
//$headers .= "Content-type: text/html; charset=iso-8859-1\n";
//mail($to, $subject, $message, $headers);
if(mail($to, $subject, $message, $headers)){
echo "Email has been sent to<b> ".$to."</b>";
}
else{
echo "Failed sending message to <b> ".$to."</b>.";
}
echo "signup_success";
exit();
[\code]
Zet het error adres ook eens op yomacho.host56.com.
- SanThe - op 13/08/2014 19:47:36:
Zet het error adres ook eens op yomacho.host56.com.
De code geeft geen error.. Of bedoel je wat anders op mijn host? Want dat error adres, weet ik eerlijk gezegd niet hoe.
Niet naar gmail.
- SanThe - op 13/08/2014 20:14:29:
Niet naar gmail.
Ah ok ik snap het. Nee helaas werkte dat ook niet. Heb eerst [email protected] gebruikt en daarna [email protected] voor errors. Helaas heb ik daar ook geen mail ontvangen..
Kan je niet in de maillog kijken?
- SanThe - op 13/08/2014 20:54:21:
Kan je niet in de maillog kijken?
Bij 000webhost kan dat volgens mij niet :(. Daar kan je sowieso geen SSH gebruiken, zodat ik naar die path kan gaan waar de maillogs inzitten. Maar ik heb het gevoel dat het aan de code ligt. Want ik gebruik namelijk javascript om de data te versturen naar de browser. En daarin wordt het verder verwerkt in php waarin een mailtje wordt verstuurd naar de gebruiker.
In de template die ik gebruik had om te testen of de mail() functie werkt, werd alleen maar php code gebruikt. Ik wil mijn javascript code hier ook posten, maar dat kan niet omdat er hier een limiet zit van 1000 karakter. Ik zal dus een externe link sturen waarin jullie de code kunnen zien, hier de link:
http://pastebin.com/uMPqzKz1
Ik hoop dat jullie me kunnen helpen :).
Toevoeging op 14/08/2014 14:56:35:
Als er geen oplossing dan kan ik het beter laten. Ik ben nu toch de code aan het veranderen.
Iets van mail('[email protected]', 'test', 'inhoud');