php - Trying to send form data to my email
Get the solution ↓↓↓I have a basic html form on my website and I'm wanting the data entered into the form to be sent to my email once submitted, after submit button pressed I'm taken to the "Sent.html" which just displays a sent message on-screen, but when i check the email account I have not received the email..
HTML Form....
<form name="contactform" method="POST" action="formphp.php">
<table width="450px">
<tr>
<td valign="top">
<label for="name">Name *</label>
</td>
<td valign="top">
<input type="text" name="Name" maxlength="50" size="30">
</td>
</tr>
<tr>
<td valign="top"">
<label for="email">Email *</label>
</td>
<td valign="top">
<input type="text" name="Email" maxlength="50" size="30">
</td>
</tr>
<td valign="top">
<label for="subject">Subject *</label>
</td>
<td valign="top">
<input type="text" name="Subject" maxlength="50" size="30">
</td>
</tr>
<tr>
<td valign="top">
<label for="questions">Question/Feedback *</label>
</td>
<td valign="top">
<textarea name="Question" cols="40" rows="5"></textarea>
</td>
</tr>
<tr>
<td colspan="2" style="text-align:center">
<input type="submit" value="Submit">
</td>
</tr>
</table>
</form>
PHP code...
<?php
/* set email */
$myemail = "[email protected]";
/* declare id */
$Name = $_POST['Name'];
$Email = $_POST['Email'];
$subject = $_POST['Subject'];
$Questions = $_POST['Questions'];
/* set subject heading */
$subject = "Subject";
/* Message */
$message = "$Name + $Email + $Questions
";
/* redirect this form after email sent */
header("location: sent.html");
?>
Answer
Solution:
Try using PHPMailer library: https://github.com/PHPMailer/PHPMailer
$mail = new PHPMailer(true);
$html = '
<!DOCTYPE html>
<html>
<head>
<title>Contact</title>
</head>
<body>
CONTENT HERE
</body>
</html>
';
try {
$mail->AddAddress('[email protected]', 'Domain Name');
$mail->SetFrom('[email protected]', 'Domain Name');
$mail->Subject = 'Contact from domain.com';
$mail->AltBody = 'To view the message, please use an HTML compatible email viewer!';
$mail->MsgHTML($html);
if(!$mail->send()) {
echo 'Message could not be sent.';
echo 'Mailer Error: ' . $mail->ErrorInfo;
exit;
}else{
header("location: sent.html");
}
} catch (phpmailerException $e) {
echo $e->errorMessage(); //Pretty error messages from PHPMailer
} catch (Exception $e) {
echo $e->getMessage(); //Boring error messages from anything else!
}
Answer
Solution:
The issue with your php code is that you never actually sent the email. To send mail in php, you use this syntax:
mail($sendto, $subject, $msg)
In your case, you would put the code right after you set your $message, and the code would look like this:
mail($myemail, $subject, $message)
For more info regarding php mail, read here: http://php.net/manual/en/function.mail.php
Answer
Solution:
Add the following code insted ofheader("location: sent.html");
if(mail($Email,$subject,$message))
header("location: sent.html");
else
die('Failed to send an email');
Share solution ↓
Additional Information:
Link To Answer People are also looking for solutions of the problem: failed to create image decoder with message 'unimplemented'
Didn't find the answer?
Our community is visited by hundreds of web development professionals every day. Ask your question and get a quick answer for free.
Similar questions
Find the answer in similar questions on our website.
Write quick answer
Do you know the answer to this question? Write a quick response to it. With your help, we will make our community stronger.