Noob_Programmer Noob_Programmer - 1 year ago 103
HTML Question

Sending email from html form using php

Ive been trying this out the whole day but I cant figure out how to send an email from my html contact form containing the information from the form to my email address. Im new to php.

Ive tried running this by uploading it to free web hosting. I get the message "success!" when I press the submit button on my html form but no email is actually sent.

Any help is appreciated.

PHP script:


$subject ="Contact Form Submission";

// Name
$name =$_POST['InputName'];

// Message
$message =$_POST['InputMessage'];

//Mail of Sender
$email =$_POST['InputEmail'];

$header = "From:$name<$email>";


//Check if mail was sent
echo "Success!";
else {
echo "Error!";

Modified PHP script:

$email ="";
$to ="";
$subject ="Test Subject";
$message ="Test Message";
$headers ='';
mail($to, $subject, $message, $headers);


<form role="form" action="send_contact.php" method="post" >
<div class="col-md-6">
<div class="form-group">
<label for="InputName">Your Name</label>
<div class="input-group">
<input type="text" class="form-control" name="InputName" id="InputName" placeholder="Enter Name" required>
<span class="input-group-addon"><i class="glyphicon glyphicon-ok form-control-feedback"></i></span>

<div class="form-group">
<label for="InputEmail">Your Email</label>
<div class="input-group">
<input type="email" class="form-control" id="InputEmail" name="InputEmail" placeholder="Enter Email" required >
<span class="input-group-addon"><i class="glyphicon glyphicon-ok form-control-feedback"></i></span>

<div class="form-group">
<label for="InputMessage">Message</label>
<div class="input-group">
<textarea name="InputMessage" id="InputMessage" class="form-control" rows="5" required></textarea>
<span class="input-group-addon"><i class="glyphicon glyphicon-ok form-control-feedback"></i></span>

<input type="submit" name="submit" id="submit" value="Submit" class="btn wow tada btn-embossed btn-primary pull-right">

Answer Source

I have a pretty good idea why your code is not working. It happened to me a long time ago. The reason why your code is not working is because :

  • When you pass "from" in headers, php expects an existing email account of your
    server. For example : $headers = 'From:';
  • So first thing you gotta do is create an email account on your server. And then put the From in header to the email address that you've just created.
  • The From field in the $headers is not the From as you think.
  • <?php
  • $email = $_POST["InputEmail"];
  • $subject = $_POST["InputSubject"];
  • $message = "From: ".$email.", ".$_POST["InputMessage"]; // you put the email address from the input form here
  • $headers = 'From:'; // here is the email address specified from which u want to send the email.(i.e. your server email address)
  • mail($to, $subject, $message, $headers)
  • ?>

I'm sure this will do the job :)

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download