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 = "myemail@gmail.com"; //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.';
}
}?>
@$sentMail = mail($to_Email, $subject, $user_Message .' -'.$user_Name, $headers);
change to
@$sentMail = mail($to_Email, $subject, "<strong>".$user_Message.'</strong> -'.$user_Name, $headers);
Should do it though no point since the user inputted message is the only thing that appears in your mail body anyway
You can, but you'll have to specify a few additional headers for that.
Add the following to your headers:
$headers = "MIME-Version: 1.0
Content-type: text/html; charset=utf-8
";
Having the charset there is optional, but can be very useful if for example your database is using a specific charset.
Hope this helps.
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:
// To send HTML mail, the Content-type header must be set
$headers .= "
" . 'Content-type: text/html; charset=iso-8859-1';
// I have changed the above to add new lines before the string, so you can add it before the mail function
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:
$headers = 'From: '.$user_Email.'' . "
" .
'Reply-To: '.$user_Email.'' . "
" .
'X-Mailer: PHP/' . phpversion();
...to:
$headers = 'From: '.$user_Email.'' . "
" .
'Reply-To: '.$user_Email.'' . "
" .
'X-Mailer: PHP/' . phpversion() . "
" .
'Content-type: text/html; charset=utf-8'
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 the Content-type: text/html
header, the $user_message
behaves exactly like a webpage, you can use almost all html tags.