Email - пробем с кирилицата

  • Автор Автор misho
  • Начална дата Начална дата

misho

Registered
Отдавна не бях имал подобен проблем. С тези редове изпращам писмото, което в последствие получавам в подобен вид: Р¶РіРѕРіРѕР¶ РіР¶РіР¶. но за разлика от съдържанието, темата на писмото (Неработеща връзка) си е на кирилица. Още по-странно е, че абсолютно същите редове копирани в друга страница, на същото място, преди html-а, работят безпроблемно. :idea:
Код:
$break_link_email_subject = "Неработеща връзка";
  $break_link_email_message ="Тази връзка не работи.";
  $break_link_headers = "From: Сметки micobg.net <smetki@micobg.net>\r\n"
  ."Reply-To: smetki@micobg.net\r\n"
  ."Content-Type: text/html; charset=utf-8\r\n"
  ."X-Mailer: PHP/".phpversion();
  mail( $settings['email'], $break_link_email_subject, $break_link_email_message, $break_link_email_headers );
 
използвай тази функция mb_detect_encoding или си редактирай тази функция



Код:
function _sendUTFMail($from, $to, $subject, $message, $cc='', $bcc='')
	{
	
		/** Обработка на информацията за подавателя  **/
	
		$_check_from = explode("<",$from );
		if (sizeof($_check_from) > 1) // Проверяваме дали е въведен текст освен E-mail адреса, ако да го енкодваме.
		{
			$headers = "From: =?UTF-8?B?".base64_encode($_check_from[0])."?= <". $_check_from[1] . "\r\n";
		}
		else 
		{
			$headers = "From: $from\r\n";
		}
		
		/** Обработка на информацията  за получателята **/
		
		$_check_to = explode("<",$to );
		if (sizeof($_check_to) > 1) // Проверяваме дали е въведен текст освен E-mail адреса, ако да го енкодваме.
		{
			$to = "=?UTF-8?B?".base64_encode($_check_to[0])."?= <". $_check_to[1];
		}
		/** Обработка на информацията  за получателята **/
		
		if (function_exists('mb_detect_encoding'))
		{
			if (mb_detect_encoding($subject) == 'UTF-8')
			{
				$subject="=?UTF-8?B?".base64_encode($subject)."?=\n"; // За да сме сигурни че заглавието ще е в UTF-8
			}
			else 
			{
				$subject = mb_convert_encoding($subject, 'UTF-8');
				$subject="=?UTF-8?B?".base64_encode($subject)."?=\n"; // За да сме сигурни че заглавието ще е в UTF-8
			}
		}
		else 
		{
				$subject="=?UTF-8?B?".base64_encode($subject)."?=\n"; // За да сме сигурни че заглавието ще е в UTF-8
		}
		/** Обработка на информацията за получателя на копие от съобщението**/
		if($cc != '')
		{
			$_check_cc = explode("<",$cc );
			if (sizeof($_check_cc) > 1) // Проверяваме дали е въведен текст освен E-mail адреса, ако да го енкодваме.
			{
				$headers .= "Cc: =?UTF-8?B?".base64_encode($cc[0])."?= <". $cc[1] . "\r\n";
			}
			else 
			{
				$headers .="CC: $cc\r\n";
			}
		}
		
		/** Обработка на информацията за получателя на скритото копие от съобщението **/
		
		if($bcc != '')
		{
			$_check_bcc = explode("<", $bcc );
			if (sizeof($_check_bcc) > 1)
			{
				$headers .= "Bcc: =?UTF-8?B?".base64_encode($bcc[0])."?= <". $bcc[1] . "\r\n";
			}
			else 
			{
				$headers .= "Bcc: $bcc\r\n";
			}
		}
		
		$headers .=	"Content-Type: text/html; "
					. "charset=UTF-8;\n"
					. "MIME-Version: 1.0\n"
					. "Content-Transfer-Encoding: 8bit\n"
					. "X-Mailer: PHP\n";
		return mail($to, $subject, $message, $headers);
	
	}
}



а може да пробваш като си копираш всичко от файла и създадеш нов в utf8 формат и да го сейваш.
 

Back
Горе