С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/10: Рейтинг темы: голосов - 10, средняя оценка - 4.80
GHST-lead
0 / 0 / 0
Регистрация: 17.11.2012
Сообщений: 8
1

Проблемы с кодировкой письма приходящего на почту

17.11.2012, 15:06. Просмотров 1831. Ответов 12
Метки нет (Все метки)

Есть 2 файла в кодировке utf-8. Первый:

HTML5
1
2
3
4
5
6
7
8
9
<form method="POST" action="pages/mailform.php">
        Имя:<br />
        <input type="text" name="Name" size="20"><br />
        E-Mail:<br />
        <input type="text" name="email" size="20"><br />
        Сообщение:<br />
        <textarea rows="5" name="message" cols="38"></textarea><br />
        <input type="submit" value="Отправить сообщение">
    </form>
Второй:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$email = 'mail@mail.ru';
$subject = 'Сообщение с веб-сайта';
 
//foreach ($HTTP_POST_VARS as $var) {
foreach ($HTTP_POST_VARS as $key => $value) {
    $text .= "$key = $value \n";
    
}
 
$from = $HTTP_POST_VARS['name'] . ' ' . $HTTP_POST_VARS['email'];
mail($email,$subject,$text,"From: $from\nReply-To: $from\n");
 
?>
Сообщения, написанные на русском приходят в таком виде:
Name = 78676585686
email = 8986
message = я─п╬п©п╩п╬п©п╪п╩п╬п©п╦п╩п╬п©п╦п╩п╬п©п╩п╦
Помогите, пожалуйста, исправить кодировку и подскажите, как заменить Name, email, message в письме на русские. Я сам верстальщик и в php не рублю. Заранее спасибо.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.11.2012, 15:06
Ответы с готовыми решениями:

Неверная кодировка письма приходящего на почту
Отправляю письмо через функцию mail() &lt;?php $your_name =...

Расшифровать имя файла, приходящего на почту
Здравствуйте. Вопрос следующего характера. Пишу для сайта модуль для работы с...

Отправка письма php. Письма со скрипта на локальном сервере (Denwer) не приходят на почту.
Доброго Времени Суток!!! Я запускаю Денвером php скрипт со следующим кодом ...

Отправление письма с правильной кодировкой
Приветствую уважаемые гуру! Помогите решить проблему, я не кодер, но мне нужно...

Неполадки с кодировкой при отправке письма
Привет всем. делаю обратную связь, она нормально работает но приходит письмо и...

12
alpex
600 / 575 / 103
Регистрация: 16.07.2012
Сообщений: 1,761
17.11.2012, 15:25 2
попробуйте так
PHP
1
mail($email,$subject,$text,"From: $from\nReply-To: $from\nContent-type: text/plain; charset=utf-8\n")
0
GHST-lead
0 / 0 / 0
Регистрация: 17.11.2012
Сообщений: 8
17.11.2012, 15:55  [ТС] 3
К сожалению, с такой модификацией кода сообщение совсем не приходит.
0
foxxp
83 / 21 / 1
Регистрация: 17.11.2012
Сообщений: 351
17.11.2012, 15:59 4
Скачиваешь PHPMAiler.
http://sourceforge.net/projects/phpmailer/

Подключаешь этим файлом:
http://phpmailer.worxware.com/index.php?pg=examplebgmail

Отправка будет через gmail, настраивать ..только логин и пароль от gmail'a впишешь. С кодировкой, там все хорошо.
0
GHST-lead
0 / 0 / 0
Регистрация: 17.11.2012
Сообщений: 8
17.11.2012, 16:03  [ТС] 5
Спасибо, но хотелось бы узнать, как поправить мой код.
0
alpex
600 / 575 / 103
Регистрация: 16.07.2012
Сообщений: 1,761
17.11.2012, 16:07 6
PHP
1
2
3
4
5
6
7
8
 $headers  = 'From: ' . $from . PHP_EOL;
        $headers .= 'Reply-to: ' . $from . PHP_EOL;
        $headers .= 'Subject: ' . $subject . PHP_EOL;
        $headers .= 'Date: ' . date('r') . PHP_EOL;
        $headers .= 'MIME-version: 1.0' . PHP_EOL;
        $headers .= 'Content-type: text/plain; charset=utf-8' . PHP_EOL;
        $headers .= 'Content-Transer-Encoding: 8bit' . PHP_EOL;
        mail($email, $subject, $text, $headers);
1
GHST-lead
0 / 0 / 0
Регистрация: 17.11.2012
Сообщений: 8
17.11.2012, 16:31  [ТС] 7
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
//  << - stoned animations online mailform.php - >>
// <<< - Stoned Animations online © 2000 - 2001 - >>>
 
 
// All you need to change is the e-mail addy:
$email = '111@mail.ru'; // ------------ УКАЖИ СВОЙ E-MAIL
$subject = 'Сообщение с веб-сайта';
 
//foreach ($HTTP_POST_VARS as $var) {
foreach ($HTTP_POST_VARS as $key => $value) {
    $text .= "$key = $value \n";
    
}
 
$from = $HTTP_POST_VARS['name'] . ' ' . $HTTP_POST_VARS['email'];
$headers  = 'From: ' . $from . PHP_EOL;
        $headers .= 'Reply-to: ' . $from . PHP_EOL;
        $headers .= 'Subject: ' . $subject . PHP_EOL;
        $headers .= 'Date: ' . date('r') . PHP_EOL;
        $headers .= 'MIME-version: 1.0' . PHP_EOL;
        $headers .= 'Content-type: text/plain; charset=utf-8' . PHP_EOL;
        $headers .= 'Content-Transer-Encoding: 8bit' . PHP_EOL;
        mail($email, $subject, $text, $headers);
 
?>
Сообщения не доставляются
0
alpex
600 / 575 / 103
Регистрация: 16.07.2012
Сообщений: 1,761
17.11.2012, 16:35 8
я не знаю я при помощи этого кода отправил не одну сотню писем
0
GHST-lead
0 / 0 / 0
Регистрация: 17.11.2012
Сообщений: 8
17.11.2012, 16:38  [ТС] 9
Можешь полный текст кода выложить?
0
alpex
600 / 575 / 103
Регистрация: 16.07.2012
Сообщений: 1,761
17.11.2012, 16:40 10
ну не знаю поможет ли он вам, у меня абстрактный класс на основе которого я наследую другие классы уже с конкретными темами писем, для регистрации, для востановления пароля и т.д
Кликните здесь для просмотра всего текста
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
abstract class Mail_base
{
    protected $to;
    protected $from = 'robot@streetracer.vrozetke.com';
    protected $reply = 'admin@streetracer.vrozetke.com';
    protected $theme;
    protected $mail = '';
    protected $headers = '';
    public $message = '';
    
    function __construct()
    {
        $this->headers();
    }
        
    protected function send()
    {
        //$this->mail = wordwrap($this->mail, 70);
        if (mail($this->to, $this->theme, $this->mail, $this->headers)){
            $this->message = lang('письмо успешно отправлено');
            return true;
        } else {
            $this->message = lang('письмо не отправлено');
            return false;
        }
    }
    
    protected function headers()
    {
        $this->headers .= 'From: ' . $this->from . PHP_EOL;
        //$this->headers .= 'To: '.$this->to.PHP_EOL;
        $this->headers .= 'Reply-to: ' . $this->reply . PHP_EOL;
        $this->headers .= 'Subject: ' . $this->theme . PHP_EOL;
        $this->headers .= 'Date: ' . date('r') . PHP_EOL;
        $this->headers .= 'MIME-version: 1.0' . PHP_EOL;
        $this->headers .= 'Content-type: text/plain; charset=utf-8' . PHP_EOL;
        $this->headers .= 'Content-Transer-Encoding: 8bit' . PHP_EOL;
    }
}
0
GHST-lead
0 / 0 / 0
Регистрация: 17.11.2012
Сообщений: 8
17.11.2012, 17:24  [ТС] 11
Может ли кто-нибудь помочь с решением проблемы?
0
KOPOJI
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16756 / 6647 / 865
Регистрация: 12.06.2012
Сообщений: 19,897
Завершенные тесты: 1
17.11.2012, 17:30 12
Цитата Сообщение от GHST-lead Посмотреть сообщение
$HTTP_POST_VARS
везде замените на $_POST
Здесь буква еще пропущена:
Цитата Сообщение от GHST-lead Посмотреть сообщение
$headers .= 'Content-Transfer-Encoding: 8bit'
0
vpupkin97
14 / 1 / 1
Регистрация: 24.09.2012
Сообщений: 8
22.11.2012, 11:50 13
Для того, чтобы получатель знал в какой кодировке сообщение (тело сообщения), надо указать encoding в заголовках (если точнее, то в Content-type).

Для того, чтобы он знал в какой кодировке тема письма/отправитель/название вложения надо использовать конструкцию =?<Кодировка>?B?<Текст в Base64>?=.

З.Ы. Почитайте эти две статьи, думаю вам поможет:
1. Отправка email при помощи PHP
2. Отправка письма с вложением
0
22.11.2012, 11:50
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2012, 11:50

Отправка на почту письма
ребята нужен скрипт для отправки письма на почту. всего 2 поля для...

Ошибка по отправке письма на почту
Как Вы поняли у меня ошибка не отправляется письмо на почту при восстановлении...

Правка письма с сайта на почту
Здравствуйте, уважаемые форумчане! Есть готовый файл отправки данных формы с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru