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:


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:
// 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
Je hebt wel een mail server geinstalleerd? Als je lokaal werkt is het antwoord waarschijnlijk nee, en dan zal je nooit een mail ontvangen.
"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

- 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:


Bij die onderste twee regels staan ook zomaar een "n" achter geplakt haha, komt door de site dus.

[size=xsmall]Toevoeging op 13/08/2014 18:47:34:[/size]

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.


[size=xsmall]Toevoeging op 13/08/2014 18:52:23:[/size]

Ik zal even mijn headers aanpassen en weer aan jullie weten wat ik geprobeerd heb.

[size=xsmall]Toevoeging op 13/08/2014 19:13:12:[/size]

Nee helaas werkt de php mail() functie nog niet, terwijl ik wel de code heb aangepast:

[code]
// 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]
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?

Reageren