user4675748
user4675748

Reputation:

Sending random number to email PHP

i am trying to send a random number to an email but unable to this is the code that i have been able to come up with so far please help if possible

sendmail.php

$to = $_POST['email'];
$header ='From:[email protected]';
$subject ='Verification Code';  

    if(empty($to))
        {
            echo "Email is Empty";
        }
        else
        {
            if (mail($to,$subject,$message,$header)){

             echo 'Check Your Email FOr verfication code';
            }
            else{
                echo 'Failed';
            } 
        }

index.php

<form action = "register.php" method="POST">

<p>Username</p>
<input type="text" name="username" maxlength="40" value='<?php if(isset($username)) echo $username ?>'"><br>

<p>New Password</p>
<input type="password" name="password"> 

 <p>email</p>
<input type="text" name="email" maxlength="40" value='<?php if(isset($email)) echo $email ?>'"> <br><br>
<input type="submit" value="Register"> <br><br>
</form>

Upvotes: 0

Views: 2789

Answers (3)

Abdulla Nilam
Abdulla Nilam

Reputation: 38642

In form(index.php)

<form action="sendmail.php" method="post">
    <lable>email</lable>>
    <input type="text" name="email" maxlength="40">
    <br>

    <input type="submit" value="Register"> 

</form>

In sendmail.php

$rand= rand(10, 20)// random number generator
$to = $_POST['email'];
$header ='From:[email protected]';
$subject ='Verification Code';

$message = "Your Random number is";
$message .= $rand;
$message .= "Thank you-Admin";

if(empty($to))
{
    echo "Email is Empty";
}
else
{
    if (mail($to,$subject,$message,$header)){

     echo 'Check Your Email FOr verfication code';
    }
    else{
        echo 'Failed';
    } 
}

Upvotes: 2

Dinesh Belkare
Dinesh Belkare

Reputation: 631

You forgot to add semicolon at the end of first line

$rand= mt_rand(100000, 999999)

It should be

$rand= mt_rand(100000, 999999);

Upvotes: 1

num8er
num8er

Reputation: 19372

I think the hosting service that You're using does not accept sending using mail() functions. Maybe for security reasons to prevent virus-like php scripts to send spams from Your account.
So create [email protected] email account and using PHPMailer send Your email:

require __DIR__.'/phpmailer/PHPMailerAutoload.php';

$mail = new PHPMailer;
$mail->isSMTP();                    
$mail->Host = 'smtp.hostname.com';  
$mail->SMTPAuth = true;             
$mail->Username = '[email protected]';                 
$mail->Password = 'secret';                           
$mail->SMTPSecure = 'tls';
$mail->Port = 587;    
$mail->setFrom('[email protected]');
$mail->addAddress($to);
$mail->isHTML(true);   
$mail->Subject = $subject;
$mail->Body    = $body;

if(!$mail->send()) {
    echo 'Message could not be sent.';
    echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
    echo 'Message has been sent';
}

Upvotes: 0

Related Questions