يه مشکل مهم در ارسال ايميل با mail()

I.NoBody

Active Member
سلام.
من مدت هاست که مي خواستم با PHP یه تابع بنويسم که بشه با اون يک ايميل فرستاد بطوريکه هم بشه فايل به اون attach کرد و هم نماةشش بصورت HTML باشه.
بالاخره تونستم اين کارو بکنم ولي به يه مشکا جديد برخوردم که توي OutLook همه چيز قاتي ميشه.
يعني وقتي ايميل رو با outlook باز مي کنم، هم اون فايل تبديل به يه سري کد شده و هم متنم با تمام تگهاي HTML نمايش داده مي شه. ولي توي وب ميل ها به درستي کار مي کنه.
لطفاً اگه کسي مي تونه کمکم کنه، اگه کسي مي تونه کمکم کنه، اگه کسي مي تونه کمکم کنه، خوب کمکم کنه ديگه
 

karevan

Member
فکر کنم از هدر باشه .
ولی اگه کدت رو بزاری راحت تر به جواب میرسی.
 

I.NoBody

Active Member
اينم کدم :
کد:
<?php 
error_reporting(0);
extract($_POST);
extract($_SESSION);
$email_message="From : <b>$email</b><br>F-Name : <b>$fname</b><br>L-Name : <b>$lname</b>$isusr $iscode $isip<br>Tel : <b>$tel</b><br>Date : <b>$date</b><br>Hour : <b>{$hour[0]}</b><br>Contents :<br>$texts";

$headers = "From: ".$email_from; 

$semi_rand = md5(time());  
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";  
    
$headers .= "\nMIME-Version: 1.0\n" .  
            "Content-Type: multipart/mixed; text/html;\n" .  
            " boundary=\"{$mime_boundary}\"";  

$email_message .= "\n\n--{$mime_boundary}\n" .  
                "Content-Type:text/html; charset=\"iso-8859-1\"\n" .  
               "Content-Transfer-Encoding: 7bit\n\n" .  
$email_message . "\n\n";  



/**********************************************  File ********************************************/ 

$fileatt = $upfile; // Path to the file                  
$fileatt_type = "application/octet-stream"; // File Type  
$fileatt_name = $_FILES['upfile'][name]; // Filename that will be used for the file as the attachment  

$file = fopen($fileatt,'rb');  
$data = fread($file,filesize($fileatt));  
fclose($file);  

$data = chunk_split(base64_encode($data));  

$email_message .= "--{$mime_boundary}\n" .  
                  "Content-Type: {$fileatt_type};\n" .  
                  " name=\"{$fileatt_name}\"\n" .  
                  //"Content-Disposition: attachment;\n" .  
                  //" filename=\"{$fileatt_name}\"\n" .  
                  "Content-Transfer-Encoding: base64\n\n" .  
                 $data . "\n\n" .  
                  "--{$mime_boundary}\n";  
unset($data); 
unset($file); 
unset($fileatt); 
unset($fileatt_type); 
unset($fileatt_name); 


$ok = @mail($email_to, $email_subject, $email_message, $headers);  

if($ok)  
 print "<center><font face=tahoma color=#063166>پيغام شما با موفقيت ارسال شد</font></center>";	
else 
 print "<center><font face=tahoma color=#800000>متاسفانه پيغام شما ارسال نشد</font></center>";
?>
البته متغيرهامو از طريق فرم ارسال کردم که نيازي نيست اينجا set کنم.
ضمناً اگر شما کد آماده اي داريد که مشکل منو حل مي کنه، ممنون ميشو در اختيارم بذاريد.
 

جدیدترین ارسال ها

بالا