PDA

View Full Version : عدم نمایش استایل بدنه ایمیل با تابع mail



abbas3zaar
یک شنبه 16 اسفند 1394, 14:15 عصر
سلام . بعد از ارسال ایمیل محتوای ایمیل من اینه:


http://8pic.ir/images/mm02lkwvwfuu6k8oswj5.jpg




چیکار کنم استایل دیده بشه؟

اینم کد هام:





$message_body = '
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>سیبسیبسیبسیبسیبسیب</title>
</head>
<body>
<table width="100%" border="0">
<tr>
<td colspan="2">سیبسیبسیبسیبسیبسسیب</td>
</tr>
<tr>
<td colspan="2"><div align="center">سیبسیبسیب</div></td>
</tr>
<tr>
<td colspan="2"><div align="center">تنسیبسیبسیبسیبها</div></td>
</tr>
<tr>
<td colspan="2"><div align="center">PHP پی اچ پی</div></td>
</tr>
</table>
</body>
</html>
';


//proceed with PHP email.
$headers = 'From: '.$user_name.'' . "\r\n" .
'Reply-To: '.$user_email.'' . "\r\n" .
'X-Mailer: PHP/' . phpversion();

$send_mail = mail($to_email, $subject, $message_body, $headers);

ravand
دوشنبه 17 اسفند 1394, 06:32 صبح
اینو امتحان کن جواب میده:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<?php
$to = 'mohammad@mesal.com';
// subject
$subject = 'موضوع نامه';
mb_internal_encoding('UTF-8');
$encoded_subject = mb_encode_mimeheader("Subject: $subject", 'UTF-8');
$encoded_subject = substr($encoded_subject, strlen('Subject: '));
$from="محمدرضا حسینیان";
// message
//باید حتما به این شکل باشه اگه در بخش استایل که بین تگ های هد هست باشه توی جیمیل کار نمیکنه
$message = '<table border="1">
<tr>
<td style="color:red">متن اول</td>
</tr>
<tr>
<td>متن دوم</td>
</tr>
</table>';
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
// Additional headers
//نوشته ی فروم قبل از متغییر حتما باید باشد
$headers .= 'From:=?UTF-8?B?'.base64_encode($from).'?=<email@mesal.com>' . "\r\n";
//$headers .= 'Cc: birthdayarchive@example.com' . "\r\n";
//$headers .= 'Bcc: birthdaycheck@example.com' . "\r\n";

// Mail it
mail($to, $encoded_subject, $message, $headers);
?>
</body>
</html>

استایل دادنت هم به این روش باشه.

abbas3zaar
دوشنبه 17 اسفند 1394, 07:55 صبح
اینو امتحان کن جواب میده:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<?php
$to = 'mohammad@mesal.com';
// subject
$subject = 'موضوع نامه';
mb_internal_encoding('UTF-8');
$encoded_subject = mb_encode_mimeheader("Subject: $subject", 'UTF-8');
$encoded_subject = substr($encoded_subject, strlen('Subject: '));
$from="محمدرضا حسینیان";
// message
//باید حتما به این شکل باشه اگه در بخش استایل که بین تگ های هد هست باشه توی جیمیل کار نمیکنه
$message = '<table border="1">
<tr>
<td style="color:red">متن اول</td>
</tr>
<tr>
<td>متن دوم</td>
</tr>
</table>';
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
// Additional headers
//نوشته ی فروم قبل از متغییر حتما باید باشد
$headers .= 'From:=?UTF-8?B?'.base64_encode($from).'?=<email@mesal.com>' . "\r\n";
//$headers .= 'Cc: birthdayarchive@example.com' . "\r\n";
//$headers .= 'Bcc: birthdaycheck@example.com' . "\r\n";

// Mail it
mail($to, $encoded_subject, $message, $headers);
?>
</body>
</html>

استایل دادنت هم به این روش باشه.

مال شما کار کرد ولی من چوون با ajax فرم تماس با ما گرفتم اگه ممکنه روی کدهای من چگ کنید کجاش باید تغییر کنه و از کجاست مشکلش

صفحه تماس با ما این اسکریپت رو گذاشتم:

کدها در صفحه contact.php



<script type="text/javascript">
$(document).ready(function() {
$("#submit_btn12").click(function() {

var proceed = true;
//simple validation at client's end
//loop through each field and we simply change border color to red for invalid fields
$("#contact_form input[required=true], #contact_form textarea[required=true]").each(function(){
$(this).css('border-color','');
if(!$.trim($(this).val())){ //if this field is empty
$(this).css('border-color','red'); //change border color to red
proceed = false; //set do not proceed flag
}
//check invalid email
var email_reg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
if($(this).attr("type")=="email" && !email_reg.test($.trim($(this).val()))){
$(this).css('border-color','red'); //change border color to red
proceed = false; //set do not proceed flag
}
});

if(proceed) //everything looks good! proceed...
{
//get input field values data to be sent to server
post_data = {
'user_name' : $('input[name=name]').val(),
'user_email' : $('input[name=email]').val(),
'country_code' : $('input[name=phone1]').val(),
'phone_number' : $('input[name=phone2]').val(),
'subject' : $('select[name=subject]').val(),
'msg' : $('textarea[name=message]').val()
};

//Ajax post data to server
$.post('contact_proccess.php', post_data, function(response){
if(response.type == 'error'){ //load json data from server and output message
output = '<div class="error">'+response.text+'</div>';
}else{
output = '<div class="success">'+response.text+'</div>';
//reset values in all input fields
$("#contact_form input[required=true], #contact_form textarea[required=true]").val('');
$("#contact_form #contact_body").slideUp(); //hide form after success
}
$("#contact_form #contact_results").hide().html(output).slideDown();
}, 'json');
}
});

//reset previously set border colors and hide all message on .keyup()
$("#contact_form input[required=true], #contact_form textarea[required=true]").keyup(function() {
$(this).css('border-color','');
$("#result").slideUp();
});
});
</script>






اینم کدهای ارسال در صفحه contact_success.php





<?php
if($_POST)
{
$to_email = "myemail@gmail.com"; //Recipient email, Replace with own email here

//check if its an ajax request, exit if not
if(!isset($_SERVER['HTTP_X_REQUESTED_WITH']) AND strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest') {

$output = json_encode(array( //create JSON data
'type'=>'error',
'text' => 'Sorry Request must be Ajax POST'
));
die($output); //exit script outputting json data
}

//Sanitize input data using PHP filter_var().
$user_name = filter_var($_POST["user_name"], FILTER_SANITIZE_STRING);
$user_email = filter_var($_POST["user_email"], FILTER_SANITIZE_EMAIL);
$country_code = filter_var($_POST["country_code"], FILTER_SANITIZE_NUMBER_INT);
$phone_number = filter_var($_POST["phone_number"], FILTER_SANITIZE_NUMBER_INT);
$subject = filter_var($_POST["subject"], FILTER_SANITIZE_STRING);
$message = filter_var($_POST["msg"], FILTER_SANITIZE_STRING);

//additional php validation
if(strlen($user_name)<4){ // If length is less than 4 it will output JSON error.
$output = json_encode(array('type'=>'error', 'text' => 'نام وارد شده کوتاه می باشد!'));
die($output);
}
if(!filter_var($user_email, FILTER_VALIDATE_EMAIL)){ //email validation
$output = json_encode(array('type'=>'error', 'text' => 'لطفا یک ایمیل معتبر وارد نمایید!'));
die($output);
}
if(!filter_var($country_code, FILTER_VALIDATE_INT)){ //check for valid numbers in country code field
$output = json_encode(array('type'=>'error', 'text' => ' کد کشور فقط شامل اعداد می باشد!'));
die($output);
}
if(!filter_var($phone_number, FILTER_SANITIZE_NUMBER_FLOAT)){ //check for valid numbers in phone number field
$output = json_encode(array('type'=>'error', 'text' => 'شماره تلفن فقط شامل اعداد می باشد'));
die($output);
}
if(strlen($subject)<3){ //check emtpy subject
$output = json_encode(array('type'=>'error', 'text' => 'وارد کردن موضوع پیام الزامی است'));
die($output);
}
if(strlen($message)<3){ //check emtpy message
$output = json_encode(array('type'=>'error', 'text' => 'متن پیام خیلی کوتاه است'));
die($output);
}

$message_body = '
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>سیبسیبسیبسیبسیبسیب</title>
</head>
<body>
<table width="100%" border="0">
<tr>
<td colspan="2">سیبسیبسیبسیبسیبسسیب</td>
</tr>
<tr>
<td colspan="2"><div align="center">سیبسیبسیب</div></td>
</tr>
<tr>
<td colspan="2"><div align="center">تنسیبسیبسیبسیبها</div></td>
</tr>
<tr>
<td colspan="2"><div align="center">PHP پی اچ پی</div></td>
</tr>
</table>
</body>
</html>
';


//proceed with PHP email.
$headers = 'From: '.$user_name.'' . "\r\n" .
'Reply-To: '.$user_email.'' . "\r\n" .
'X-Mailer: PHP/' . phpversion();

$send_mail = mail($to_email, $subject, $message_body, $headers);

if(!$send_mail)
{
//If mail couldn't be sent output error. Check your PHP email configuration (if it ever happens)
$output = json_encode(array('type'=>'error', 'text' => 'خطایی رخ داده است. دوباره امتحان کنید.'));
die($output);
}else{
$output = json_encode(array('type'=>'message', 'text' => ' '.$user_name .' عزیز ، پیام شما ارسال شد. بزودی پاسخ خواهیم داد.'));
die($output);
}
}
?>

ravand
دوشنبه 17 اسفند 1394, 08:01 صبح
کدهات رو بر طبق کدهایی که من زدم بزن. و فقط کدهای قسمت body را به متغییر $message_body (یعنی کدهای table) بده. و بقیه اش رو حذف کن.

abbas3zaar
دوشنبه 17 اسفند 1394, 08:08 صبح
کدهات رو بر طبق کدهایی که من زدم بزن. و فقط کدهای قسمت body را به متغییر $message_body (یعنی کدهای table) بده. و بقیه اش رو حذف کن.

پست رو ویرایش زدم یه نگاه بنداز. کدهای هر دو صفحه رو گذاشتم.

ravand
دوشنبه 17 اسفند 1394, 08:11 صبح
پست رو ویرایش زدم یه نگاه بنداز. کدهای هر دو صفحه رو گذاشتم.
کدهای php رو که هیچ تغییری ندادی! بر طبق کدهایی که دادم تغییر بده پشیمون نمیشی.

abbas3zaar
دوشنبه 17 اسفند 1394, 08:25 صبح
کدهای php رو که هیچ تغییری ندادی! بر طبق کدهایی که دادم تغییر بده پشیمون نمیشی.

همشون رو نمیخواست تغییر بدم.

این کدهای خودم رو




//proceed with PHP email.
$headers = 'From: '.$user_name.'' . "\r\n" .
'Reply-To: '.$user_email.'' . "\r\n" .
'X-Mailer: PHP/' . phpversion();




به این تغییر دادم:





//proceed with PHP email.
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
// Additional headers
$headers .= 'From:=?UTF-8?B?'.base64_encode($from).'?=<'.$user_name.'>' . "\r\n" .
'Reply-To: '.$user_email.'' . "\r\n" .
'X-Mailer: PHP/' . phpversion();




الان استایل دارم. ممنون


این سه تا خط کارشو کرد:




$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
// Additional headers
$headers .= 'From:=?UTF-8?B?'.base64_encode($from).'?=<'.$user_name.'>' . "\r\n" .

abbas3zaar
دوشنبه 17 اسفند 1394, 08:28 صبح
راستی چرا اسم هاستینگم توی ایمیل میاد؟

بالا بعد از ایمیل نوشته
cp9.اسم هاستینگم.com

اینو چجوری جایگزین کنم؟