Jump to content

Отправить письмо в UTF-8


Recommended Posts

приветствую! не получается отправить письмо в UTF-8

$headers = "From: $from";


// boundary
$semi_rand = md5(time());
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";

// заголовки для вложения
$headers .= "
MIME-Version: 1.0
" . "Content-Type: multipart/mixed;
" . " boundary={$mime_boundary}";

// multipart boundary
$message = "--{$mime_boundary}
" . "Content-Type: text/plain; charset=\"iso-8859-1\"
" .
"Content-Transfer-Encoding: 7bit

" . $message . "

";

// подготовка вложений
for($i=0;$i<=count($files);$i++){
if(is_file($files[$i])){
$message .= "--{$mime_boundary}
";
$fp = @fopen($files[$i],"rb");
$data = @fread($fp,filesize($files[$i]));
@fclose($fp);
$data = chunk_split(base64_encode($data));
$message .= "Content-Type: application/octet-stream; name=".basename($files[$i])."
" .
"Content-Description: ".basename($files[$i])."
" .
"Content-Disposition: attachment;
" . " filename=".basename($files[$i])."; size=".filesize($files[$i]).";
" .
"Content-Transfer-Encoding: base64

" . $data . "

";
}
}
$message .= "--{$mime_boundary}--";
$returnpath = "-f" . $sendermail;
$ok = @mail($to, $subject, $message, $headers, $returnpath); //отправка сообщения
  echo "Сообщение отправлено! <script>setTimeout(function(){location.href='/';}, 5000);</script>";
if($ok){ return $i;  } else { return 0; }
}

$files = array();
$file = array();
$files = $_FILES["mail_file"]["tmp_name"];
foreach($files as $val) {
  $name = rand(0, 9999).".jpg";
  $file[] = $name;
  copy($val, $name);

}

" . "Content-Type: text/plain; charset=\"iso-8859-1\"
" .
"Content-Transfer-Encoding: 7bit

 

менял на UTF-8 и ставил 8bit - до фонаря! помогите плиз очень срочно надо!

Link to post
Share on other sites

Есть вопрос? Задай его профессиональным веб-мастерам, SEO и другим специалистам!

На кворке поищите, там как раз за 500р и сделают

 

там только можно предлагать услуги насколько я понял, а мне надо чтобы услугу выполнили, я понимаю что 500р смешная сумма, но мы можем договорится всегда, главное чтобы эта форма заработала :) пишите свои предложения)

Link to post
Share on other sites

А шо

charset=\"iso-8859-1\"

на

charset=utf-8

не работает?

 

 

менял на UTF-8 и ставил 8bit - до фонаря! помогите плиз очень срочно надо!

как именно вставляли, показать можете?

 

пс. попробуйте заменить, это

"Content-Type: text/plain; charset=\"iso-8859-1\"

на так

"Content-Type: text/html; charset=utf-8\n\n"
Edited by tvskit
Link to post
Share on other sites

Одна закрывающая фигурная скобка лишняя.
Не объявлены вот эти переменные: $subject, $sendermail. Теме тоже рекомендуют кодировку прописывать <?= "=?utf-8?B?".base64_encode($subject)."?="; ?>
 
Попробуй вот так:
 

$headers = "";

// boundary
$semi_rand = md5(time());
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";

// заголовки для вложения
$headers.= "MIME-Version: 1.0\r\nContent-Type: multipart/mixed;  boundary={$mime_boundary}\r\nFrom: $from";

// multipart boundary
$message = "--{$mime_boundary}\r\nContent-Type: text/html; charset=\"utf-8\"\r\nContent-Transfer-Encoding: base64\r\n".$message;

// подготовка вложений
for($i = 0; $i <= count($files); $i++){
	if(is_file($files[$i])){
		$message.= "--{$mime_boundary}";
		$fp = @fopen($files[$i], "rb");
		$data = @fread($fp, filesize($files[$i]));
		@fclose($fp);
		$data = chunk_split(base64_encode($data));
		$message.= "Content-Type: application/octet-stream; name=".basename($files[$i])."\r\nContent-Description: ".basename($files[$i])."\r\nContent-Disposition: attachment; filename=".basename($files[$i])."; size=".filesize($files[$i]).";\r\nContent-Transfer-Encoding: base64".$data;
	}
}
$message.= "\r\n--{$mime_boundary}--\r\n";
$returnpath = "-f".$sendermail;
$ok = @mail($to, $subject, $message, $headers, $returnpath); //отправка сообщения
echo "Сообщение отправлено! <script>setTimeout(function(){location.href='/';}, 5000);</script>";
if($ok){return $i;}else{return 0;}
//}

$files = array();
$file = array();
$files = $_FILES["mail_file"]["tmp_name"];
foreach($files as $val){
	$name = rand(0, 9999).".jpg";
	$file[] = $name;
	copy($val, $name);
}
Link to post
Share on other sites

Content-Type: text/plain; charset=\"iso-8859-1\"

замените на

Content-Type: text/plain; charset=\"koi8-u\"

 

И для заголовка письма (переменной $subject) добавьте:

 

$subject = '=?koi8-u?B?'.base64_encode($subject).'?=';

 

Если сайт работает на кодировке windows-1251 (cp1251), то нужно добавить следующие строки:

$subject = '=?koi8-u?B?'.base64_encode(convert_cyr_string($subject, "w","k")).'?=';
$message = convert_cyr_string($message, "w","k");

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...