I use this really simple and great mail contact form: http://www.saaraan.com/2011/12/making-simple-jquery-ajax-contact-form It work fine !
But I would like that the message content, writed by the visitor, be bold in my email box.
This is possible ?
My php code :
<?php
if($_POST)
{
//check if its an ajax request, exit if not
if(!isset($_SERVER['HTTP_X_REQUESTED_WITH']) AND strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest') {
die();
}
$to_Email = "[email protected]"; //Replace with recipient email address
$subject = 'Ah!! My email from Somebody out there...'; //Subject line for emails
//check $_POST vars are set, exit if any missing
if(!isset($_POST["userName"]) || !isset($_POST["userEmail"]) || !isset($_POST["userPhone"]) || !isset($_POST["userMessage"]))
{
die();
}
//Sanitize input data using PHP filter_var().
$user_Name = filter_var($_POST["userName"], FILTER_SANITIZE_STRING);
$user_Email = filter_var($_POST["userEmail"], FILTER_SANITIZE_EMAIL);
$user_Phone = filter_var($_POST["userPhone"], FILTER_SANITIZE_STRING);
$user_Message = filter_var($_POST["userMessage"], FILTER_SANITIZE_STRING);
//additional php validation
if(strlen($user_Name)<4) // If length is less than 4 it will throw an HTTP error.
{
header('HTTP/1.1 500 Name is too short or empty!');
exit();
}
if(!filter_var($user_Email, FILTER_VALIDATE_EMAIL)) //email validation
{
header('HTTP/1.1 500 Please enter a valid email!');
exit();
}
if(!is_numeric($user_Phone)) //check entered data is numbers
{
header('HTTP/1.1 500 Only numbers allowed in phone field');
exit();
}
if(strlen($user_Message)<5) //check emtpy message
{
header('HTTP/1.1 500 Too short message! Please enter something.');
exit();
}
//proceed with PHP email.
$headers = 'From: '.$user_Email.'' . "rn" .
'Reply-To: '.$user_Email.'' . "rn" .
'X-Mailer: PHP/' . phpversion();
@$sentMail = mail($to_Email, $subject, $user_Message .' -'.$user_Name, $headers);
if(!$sentMail)
{
header('HTTP/1.1 500 Couldnot send mail! Sorry..');
exit();
}else{
echo 'Hi '.$user_Name .', Thank you for your email! ';
echo 'Your email has already arrived in my Inbox, all I need to do is Check it.';
}
}?>
It is possible. Normally, php mail function sends it's content in plain text form. To send it as HTML, which will enable html markup, use this:
this is an extract from http://php.net/manual/en/function.mail.php
Of course, you should also change the charset to preferred one, like utf-8.
You can either change this:
...to:
Regarding your question in comments:
See this:
@$sentMail = mail($to_Email, $subject, $user_Message .' -'.$user_Name, $headers);
The third parameter is the message you send. Since we added a header informing that a HTML document will be sent, we can use HTML tags.To do so, edit
$user_message
to contain HTML document. For example, to simply make all the text bold, make$user_message = '<html><head></head><body><b>' . $user_message . '</b></body></html>'
. When you add theContent-type: text/html
header, the$user_message
behaves exactly like a webpage, you can use almost all html tags.