Проблема с PHP отправкой сообщений

D
На сайте с 01.03.2016
Offline
3
580

Всем привет!

Есть вот такая php:

<?

$name = $_POST["name"];

$email = $_POST["email"];

$reason = $_POST["reason"];

$message = $_POST["message"];

$br = "yandex.ru";

mail("мойник@$br", "Вам письмо с сайта", " от $name

email-отправителя: $email

текст письма: $message",

"From: <$email>\nContent-type: text/plain; charset=utf-8");

header('Location: http://имясайта/');

?>

все работает, но на почту приходят письма такого содержания:

?? Вася

email-???????????: пример@gmail.com

????? ??????: Привет!

Как решить?)

LovelAss
На сайте с 05.06.2009
Offline
96
#1
M
На сайте с 04.12.2013
Offline
223
#2

delad, кодировку файла проверьте.

Домены и скрипт для коротких ссылок: https://u75.ru/domains-for-shortcuts
D
На сайте с 01.03.2016
Offline
3
#3

в html utf-8, в php тоже сейчас вписал две строки:

$src_charset=mb_internal_encoding();

$dst_charset="utf-8";

толку нет((

Я не разбираюсь в php вообще, да и в html и css только начал, но сайт уже готов, это единственное что не работает) Поэтому у вас и спрашиваю, и надеюсь на детальный ответ, что конкретно и куда прописывать))

---------- Добавлено 05.03.2016 в 02:25 ----------

В общем, когда ставлю кодировку utf-8, то сам текст сообщения и имя отправителя приходят нормальными, но не распознаются слова из когда "email-отправителя:", "текст письма" и тд.

А когда ставлю Windows-1251, то наоборот) сообщение не распознается а эти слова - распознаются... просто подскажите что туда прописать, я очень буду благодарен)

seocore
На сайте с 25.09.2006
Offline
143
#4
delad:
Как решить?)

примерно так:


<?
$name = $_POST["name"];
$email = $_POST["email"];
$reason = $_POST["reason"];
$message = $_POST["message"];
$email_from = "реальный-ящик@имясайта.ru";
$email_to = "реальный-ящик@yandex.ru";

mail($email_to, "Вам письмо с сайта", " от $name
email-отправителя: $email
текст письма: $message",
"Reply-To: <$email>\nFrom: <$email_from>\nContent-type: text/plain; charset=utf-8");
header('Location: http://имясайта/');
?>

Ящик, который стоит в From:, должен быть реальным и в том же домене, где выполняется скрипт, чтобы избежать проблем с работой анти-SPAM'а. 🍿

Инструменты для веб-мастера: кластеризатор СЯ (https://goo.gl/MQWfqO), все запросы конкурента (https://goo.gl/hd5uHS), дешевые XML-лимиты (https://goo.gl/aDZbPI)
D
На сайте с 01.03.2016
Offline
3
#5
seocore:
примерно так:

<?
$name = $_POST["name"];
$email = $_POST["email"];
$reason = $_POST["reason"];
$message = $_POST["message"];
$email_from = "реальный-ящик@имясайта.ru";
$email_to = "реальный-ящик@yandex.ru";

mail($email_to, "Вам письмо с сайта", " от $name
email-отправителя: $email
текст письма: $message",
"Reply-To: <$email>\nFrom: <$email_from>\nContent-type: text/plain; charset=utf-8");
header('Location: http://имясайта/');
?>

Ящик, который стоит в From:, должен быть реальным и в том же домене, где выполняется скрипт, чтобы избежать проблем с работой анти-SPAM'а. 🍿

Ничего не изменилось)

M
На сайте с 04.12.2013
Offline
223
#6
delad:
в html utf-8, в php тоже сейчас вписал две строки:
$src_charset=mb_internal_encoding();
$dst_charset="utf-8";

толку нет((

Я сказал, что нужно посмотреть, в какой кодировке сам php-файл записан.

Не разбираетесь, нефиг лезть в эти дебри. Вы реально собрались выкладывать этот код на работающий сайт? Сочувствую.

---------- Добавлено 05.03.2016 в 21:16 ----------

Ящик на домене может и не существовать физически, если хостинг это позволяет, но он по-любому должен быть на вашем домене.

---------- Добавлено 05.03.2016 в 21:19 ----------

seocore, нужно экспериментально проверять, есть ли линуксовая трансляция \n в \r\n. Если нет, то в качестве межстрочного разделителя нужно использовать \r\n.

D
На сайте с 01.03.2016
Offline
3
#7
miketomlin:
Я сказал, что нужно посмотреть, в какой кодировке сам php-файл записан.

Не разбираетесь, нефиг лезть в эти дебри. Вы реально собрались выкладывать этот код на работающий сайт? Сочувствую.

---------- Добавлено 05.03.2016 в 21:16 ----------

Ящик на домене может и не существовать физически, если хостинг это позволяет, но он по-любому должен быть на вашем домене.

---------- Добавлено 05.03.2016 в 21:19 ----------

seocore, нужно экспериментально проверять, есть ли линуксовая трансляция \n в \r\n. Если нет, то в качестве межстрочного разделителя нужно использовать \r\n.

Да что за ответы такие "не разбираешься - нефиг лезть" ?))) ну я не разбираюсь, да. Но за пару дней я сделал себе сайт, да, по шаблону конечно же пока, но я многое изменил в коде и очень хочу разбираться. Поэтому я задаю вопросы на форуме. И очень ценю ответы. Я уже понял что с кодировкой именно проблемы, но не очень понимаю как посмотреть в какой кодировке записан мой Php, кроме той строки, где я сам прописывал UTF-8... А ящик на домене я создал и прикрутил уже его к php. И да, я вставил этот код в работающий сайт) и он работает, за исключением той проблемы, которую я описал. Но и это не проблема по сути, так как я просто заменил все русские слова в php на английские, да и все. Но разобраться все ж хочу на будущее) вот так :)

M
На сайте с 04.12.2013
Offline
223
#8

Откройте файл в любом нормальном редакторе и посмотрите текущую кодировку. Например, в Notepad++ в подменю «Кодировки» должен быть отмечен пункт «Кодировать в UTF-8 (без BOM)». Если это не так, тут же выберите «Преобразовать в UTF-8 без BOM» и сохраните файл.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий