PHP mail functie werkt maar ontvang geen mail

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Superky rickoz

superky rickoz

13/08/2014 17:41:22
Quote Anchor link
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: 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:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>.";
}


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)
PHP script in nieuw venster Selecteer het PHP script
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
// 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();


Ook vind ik het geen probleem als iemand me wilt helpen via Skype. Omdat ik dat ook waardeer :).

Mvg,

superky
 
PHP hulp

PHP hulp

25/11/2024 00:03:29
 
Erwin H

Erwin H

13/08/2014 17:47:36
Quote Anchor link
Je hebt wel een mail server geinstalleerd? Als je lokaal werkt is het antwoord waarschijnlijk nee, en dan zal je nooit een mail ontvangen.
 
- Ariën  -
Beheerder

- Ariën -

13/08/2014 17:49:10
Quote Anchor link
Maar Skype gaat buiten het forum om, zodat dit topic voor andere waardeloos wordt.
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
 
- SanThe -

- SanThe -

13/08/2014 17:53:49
Quote Anchor link
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
 
E vH

E vH

13/08/2014 18:08:36
Quote Anchor link
"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
 
Superky rickoz

superky rickoz

13/08/2014 18:45:21
Quote Anchor link
- 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


Dat komt niet door mij dat komt door de website hehe :P. Zie hier een screenshot van mijn tekst editor:
Afbeelding

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



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)
PHP script in nieuw venster Selecteer het PHP script
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
// 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]
 
- SanThe -

- SanThe -

13/08/2014 19:47:36
Quote Anchor link
Zet het error adres ook eens op yomacho.host56.com.
 
Superky rickoz

superky rickoz

13/08/2014 20:05:53
Quote Anchor link
- 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.
 
- SanThe -

- SanThe -

13/08/2014 20:14:29
Quote Anchor link
Niet naar gmail.
 
Superky rickoz

superky rickoz

13/08/2014 20:52:55
Quote Anchor link
- 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..
 
- SanThe -

- SanThe -

13/08/2014 20:54:21
Quote Anchor link
Kan je niet in de maillog kijken?
 
Superky rickoz

superky rickoz

13/08/2014 21:12:40
Quote Anchor link
- 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.
 
- SanThe -

- SanThe -

14/08/2014 15:03:46
Quote Anchor link
Als je vanaf diezelfde pagina een simpel mailtje verstuurd. Komt dat dan wel aan?
Iets van mail('[email protected]', 'test', 'inhoud');
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.