Reputation: 59
I am trying to make a user registration and email confirmation page in php. This is the code to register the user, and to send a confirmation email. Everything runs fine, and it registers the user into the database, but it does not send the email to the user at all. Heres the code.
<?php
include('sqlconfig.php');
$tbl_name=temp_users;
/*Email Confirmation Code*/
$confirm_code=md5(uniqid(rand()));
$Email=mysql_real_escape_string($_POST['email']);
$First_Name=mysql_real_escape_string($_POST['firstname']);
$Last_Name=mysql_real_escape_string($_POST['lastname']);
$Password=mysql_real_escape_string($_POST['password']);
$Confirm_pass=mysql_real_escape_string($_POST['conpassword']);
$Phone=mysql_real_escape_string($_POST['phone']);
/*Insert the data into the base*/
$sql = 'INSERT INTO temp_users(confirm, FirstN, LastN, password, confirmpassword, phone, email)
VALUES("'.$confirm_code.'", "'.$First_Name.'", "'.$Last_Name.'", "'.$Password.'", "'.$Confirm_pass.'", "'.$Phone.'", "'.$Email.'")';
$result=mysql_query($sql);
/*If data succesfully inserted proceed with this*/
if($result){
/*Send Email here*/
$to=$Email;
$subject="Newgenstudios Account Confirmation";
/*From*/
$header="From:Newgenstudios <[email protected]>";
/* Your message */
$message="Welcome to Newgenstudios! Thank you for registering. \r\n";
$message="Here is your Comfirmation link \r\n";
$message.="Click on this link to activate your account \r\n";
$message.="http://www.newgensv01.dyndns.org/confirmation.php?passkey=$confirm_code";
$message="Account Details: \r\n";
$message="Name: $First_Name $Last_Name \r\n";
$message="Email: $Email \r\n";
$message="Password: $Password \r\n";
$message="Phone: $Phone \r\n";
$message="\r\n";
$message="Did you not register? Then please disregard this message. \r\n";
/* Send Email */
$sentmail = mail($to,$subject,$message,$header);
}
/*If not found*/
else {
echo "Not found your email in our database";
}
/* email succesfully sent */
if($sentmail){
echo "Your Confirmation link Has Been Sent To Your Email Address.";
}
else {
echo "Cannot send Confirmation link to your e-mail address";
}
?>
Upvotes: 1
Views: 944
Reputation: 14827
Using the mail() function that comes with PHP is not a good approach in sending email since it is easily marked as spammed, and you need to set up header to ensure that you are sending HTML emails correctly.
So I would suggest you take a look at PHPMailer or SwiftMailer, which has HTML support, support for different mime types and SMTP authentication
Upvotes: 0