2013-08-09 3 views
0

У меня проблема с настройками символов для отправляемых мной электронной почты с использованием функции mail() в PHP.Неверные символы при отправке почты

Фактический файл, в котором я написал код PHP, находится в кодировке UTF-8. Я также убедился, что charset = UTF-8 установлен в заголовке для электронной почты, я даже добавил метатег в заголовке для основного содержимого HTML. Тем не менее, это не сработает.

Это как код PHP выглядит следующим образом:

// Prepare the e-mail to the GUEST 
$to = $email; 
$subject = "PÅMINNELSE: Bekräfta registrering för Event"; 

// Defining the headers 
$headers = "MIME-Version: 1.0" . "\r\n"; 
$headers .= "Content-type: text/html; charset=UTF-8" . "\r\n"; 
$headers .= "From: Pre-registration <[email protected]>" . "\r\n"; 

include("gemailreminder.php"); 

// Send the mail now! 
mail($to, $subject, $message, $headers); 

Содержание включенного файла gemailreminder.php выглядит следующим образом:

<?php 
$message = <<< MESSAGE 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<title>REMINDER E-MAIL</title> 
</head> 
<body> 
<p >text...</p > 
</body> 
</html> 
MESSAGE; 
?> 

Любые предложения, чтобы помочь мне решить эту проблему?

Заранее благодарен!

// Andreas

+0

сделал вы использовали шведский язык? –

+0

@ VIVEK-MDU Да, это символы шведского языка в электронном письме. – Andreas

+0

вы можете изменить charset = UTF-8 "в charset = ISO-8859-1" это может помочь вам –

ответ

0

содержание электронной почты, которые включают в себя не-ASCII символы должны быть посланы в кодировке base64.

Это довольно просто сделать, используя функцию PHP base64_encode(), но, откровенно говоря, слишком много причуд, подобных этому, чтобы остерегаться при использовании функции PHP mail().

Мой совет - использовать один из существующих классов почтовой программы классов, которые были написаны, что делает всю тяжелую работу для вас - больше не нужно общаться с заголовками, больше не беспокоиться о кодировании, отправлять вложения легко и т. Д. И т. Д. .

Обычно рекомендуемые классы a Swiftmailer и phpMailer..

Используйте любой из них, и я гарантирую, что вы никогда не захотите снова позвонить плохой старой функции mail().

+0

Благодарим вас за ответ. Странно то, что он сработал, но теперь это не так. Я рассмотрю, как использовать классы Swiftmailer или phpMailer. – Andreas

0

Вы должны сохранить gemailreminder.php в utf-8, используйте настройки своего редактора, чтобы сделать это.

+0

Все мои PHP-файлы написаны в utf-8. – Andreas

0

FYI:

По какой-то странной причине он вдруг только начал работать снова. Возможно, у моего провайдера веб-отеля были некоторые проблемы на их серверах или настройки в течение определенного периода времени.

Благодарю вас за ваше время и усилия, чтобы предоставить ответы. Я по-прежнему буду больше знаком с классами Swiftmailer и phpMail.

С уважением, Andreas

Смежные вопросы