مشکل در encoding ارسال ایمیل

amirepsilon

Active Member
سلام
دوستان من با تابع mail ایمیل ارسال میکنم
قبلا مشکلی نبوده ولی از وقتی کدها رو روی یک سرور جدید تست کردم، header ایمیل با encoding مناسب ارسال نمیشه و حروف فارسی رو نمیخوانه
منظورم subject هست. ولی متن ایمیل body مشکلی نداره
لطفا راهنمایی کنید
با تشکر
 

memfis

Member
سلام
در اطلاعات header گزینه زیر را هم اضافه کنید
HTML:
Content-type:text/html;charset=utf-8
یک مثال کوچیک
PHP:
$headers = "MIME-Version: 1.0" . "\r\n";
				$headers .= "Content-type:text/html;charset=utf-8" . "\r\n";
				$headers .= 'From: your mail' . "\r\n";
				mail($mail,$subject,$message,$headers);
 

amirepsilon

Active Member
ممنون ولی نشد!
از این قبلا استفاده کرده بودم و برای متن ایمیل جواب میده
ولی سابجکت هنوز مشکل داره
 

Domanjiri

Well-Known Member
سلام

برای انکدینگ عنوان ایمیل باید از روش انکد کردن encoded-words استفاده کنـ ید (لینک رو حتمن بـ خونید)

کد نمونه:
PHP:
$subject = 'سلام';
.....
..
$headers .= "Subject: =?UTF-8?B?".base64_encode($subject)."?=";
تو این روش محدودیت 70 کاراکتری برای عنوان وجود داره. لینک رو مطالعه کنـ ید.
 

amirepsilon

Active Member
عزیز خیلی ممنون درست شد
میشه یه توضیحی بدی ؟ من از اون لینک چیزی نفهمیدم
ممنون
 

Domanjiri

Well-Known Member
خوشحالـ َم که مشکل حل شد

توضیح خاصی که نداره!
بعضی میل سرورها با کاراکتر های غیر اَسکی(non-ASCII characters) توی هدر مشکل دارند. این تکنیک برای حل این مشکل هست.
اون محدودیت هم، الان که نگاه کردم دیدم 75 کاراکتر هست، اگه طول رشته بیشـ تر بود باید از چنـد انکدد-ورد(همون کدی که بالا هست) استفاده کنیـ

شاد باشـ ید
 

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

بالا