За последние 24 часа нас посетили 38810 программистов и 1284 робота. Сейчас ищут 1066 программистов ...

Проблема с письмом.

Тема в разделе "PHP для новичков", создана пользователем Danil005, 10 июл 2017.

  1. Danil005

    Danil005 Активный пользователь

    С нами с:
    2 янв 2015
    Сообщения:
    528
    Симпатии:
    30
    Почему у меня письмо в таком формате приходит? Название на русском, а вот содержимое не читает корректно.
    [​IMG]
     
  2. teleoperator

    teleoperator Зэк
    [ БАН ]

    С нами с:
    3 июл 2017
    Сообщения:
    107
    Симпатии:
    29
    Кодировка html-шаблона письма.
    Кодировка самого письма
    Нерпвильные заголовки (headers)
    Варианты могут быть разные. Картинка тут не поможет.
     
    Fell-x27 нравится это.
  3. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.815
    Симпатии:
    1.332
    Адрес:
    Лень
    utf-8 нужен
     
  4. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    А потом проверь, как работает оно с гуглопочтой. Если почтовый сервер православно не настроен, гугл просто будет без суда и следствия заворачивать письма в бездну. И придется прикручивать всякие DKIM-ы и прочие радости жизни.
     
  5. Danil005

    Danil005 Активный пользователь

    С нами с:
    2 янв 2015
    Сообщения:
    528
    Симпатии:
    30
    PHP:
    1. $headers  = "Content-type: text/html; charset='utf8' \r\n";
    2.       $headers .= "From: Vixed.Ru <no-reply@vixed.ru>\r\n";
    3.       $headers .= "Reply-To: no-reply@vixed.ru\r\n";
    Вот так настроено.
    --- Добавлено ---
    Кодировка HTML-шаблона и письма utf-8.
     
  6. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Воу, так ты еще и сам шлешь руками? Попробуй phpMailer или Swift и забудь о проблемах с почтой. Прост почта это вот настолько расхожий кейс, что тут просто грешно не пользоваться готовыми решениями.
     
  7. Danil005

    Danil005 Активный пользователь

    С нами с:
    2 янв 2015
    Сообщения:
    528
    Симпатии:
    30
    Да, но если мне не нужен STMP сервер... Просто я не хочу использовать сервис Google или Yandex, иль им подобны, так как имеют ограничения по отправки писем в день.
     
  8. Maputo

    Maputo Активный пользователь

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    Проверьте кодировку php-скрипта. К тому же в начало скрипта можно вставить
    mb_internal_encoding("UTF-8");

    Ну и в заголовки я бы еще добавил
    PHP:
    1. $headers  = 'MIME-Version: 1.0' . "\r\n";
    2. $headers .= "Content-type: ...
     
    #8 Maputo, 10 июл 2017
    Последнее редактирование: 10 июл 2017
  9. Danil005

    Danil005 Активный пользователь

    С нами с:
    2 янв 2015
    Сообщения:
    528
    Симпатии:
    30
    utf-8 стоит.
     
  10. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    rackspace
     
  11. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Я вот не понял, как хоть что-то здесь оправдывает отсутствие использования phpMailer и подобных. Вы думаете, что у них под капотом не те же функции, какие вы дергаете? Или вы думаете, что вы письмо тестовое отослали прямо из PHP, а не через тот же postfix, который у вас худо бедно отрабатывает на дефолтных настройках ? :)

    phpmailer это не про "откуда отправлять письма", а "как отправлять". В данном случае - без головной боли. Вы просто туда внутрь загляните и увидите, какой путь вам нужно будет самостоятельно проделать, чтобы у вас ушли все проблемы.
     
  12. Maputo

    Maputo Активный пользователь

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    @Fell-x27, не хочу снова разводить холивар, но иногда и правда ни к чему разворачивать мощную систему, если требуется отправлять однотипные сообщения.
    Для примера, недавно редактировал один сайт. Там все странички были на html. И один файл скрипта для заказа звонка с сайта:
    PHP:
    1. <?php
    2.  
    3. if (isset($_POST['name'])) {$name = $_POST['name'];}
    4. if (isset($_POST['tel'])) {$tel = $_POST['tel'];}
    5.  
    6. $to = "bla-bla-bla@mail.ru";
    7. $headers = "Content-type: text/plain; charset = windows-1251";
    8. $subject = "Заказ звонка с сайта";
    9. $message = "Здравствуйте, перезвоните мне \nИмя: $name \nТелефон: $tel";
    10. $send = mail ($to, $subject, $message, $headers);
    11. if ($send == 'true')
    12. {
    13. reset($name = "Ваше имя");
    14. echo "<p style='text-align:center'><font size=5 color=#000099><b>Спасибо за отправку Вашего сообщения!</b></p>";
    15. echo "<p style=text-align:center><a href=#  onclick=window.close()><img src=images/knopka_mail.png></a></p>";
    16. }
    17.  
    18. ?>
    Не знаю зачем понадобилась сессия.
    Тут даже нет проверки корректного ввода номера телефона. При этом все работало, никакого спама. Только один раз пришло письмо с пустым номером телефона.
    Им тоже надо было разворачивать phpmailer?
     
  13. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    composer require phpmailer/phpmailer и всё. Какое ещё "разворачивать"?
     
    Fell-x27 нравится это.
  14. Maputo

    Maputo Активный пользователь

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    @romach, я об этом:
    Половину, конечно, можно выкинуть, но все равно много, по сравнению с одним скриптом.
     
    #14 Maputo, 10 июл 2017
    Последнее редактирование: 10 июл 2017
  15. Danil005

    Danil005 Активный пользователь

    С нами с:
    2 янв 2015
    Сообщения:
    528
    Симпатии:
    30
    Хорошо, я согласен, разобрался с ним, вроде легко... Но, я использовал лишь их примеры по отправке и тут-то появилась проблема:
    [​IMG]
    --- Добавлено ---
    Это понятно и легко... Одна команда, один autoload и все.
     
  16. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    Зачем это выкидывать? Кому это мешает? Чем?
     
  17. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Там мощщщщная система представляет собой один-единственный хорошо отлаженный отполированный класс, в общем-то. Это же не какой-то свой самописный вебсервер на пэхапе.
    Это вот все - не более чем необязательные дополнение, а то и вовсе служебные файлы репы, всякие метаданные и...тестовые сэмплы. Ты ведь даже не прочитал доку, прежде чем скинуть этот список, да?
    --- Добавлено ---
    Читай документацию :)
    Там тоже есть параметры. Там тоже нужно указать кодировку. Мэйлер берет на себя много головняка, но как его брать - надо подсказать.
    --- Добавлено ---
    Я больше скажу - если даже композер не присутствует в проекте изначально, он к нему сбоку прикручивается в 5 минут. Ды деж хрен с ним с композером. Можно руками класс мэйлеровый в проект вставить и пользоваться на здоровье, проблем никаких же.
     
  18. Danil005

    Danil005 Активный пользователь

    С нами с:
    2 янв 2015
    Сообщения:
    528
    Симпатии:
    30
    А где она?
    --- Добавлено ---
    Я сделал так:
    $this->mail->CharSet='utf8';
    $this->mail->Encoding='base64';

    Все работает, кроме обработки стилей и текст в таком формате: "фриланс площадка"
     
  19. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    PHPMailer - самая первая строка в гугле.
     
  20. Maputo

    Maputo Активный пользователь

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    Конечно :D Я только глянул пример и понял, что вся эта "полировка" летит к чертям, если не указать дюжину параметров.
     
    #20 Maputo, 10 июл 2017
    Последнее редактирование: 10 июл 2017
  21. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    Например? Хоть один лишний параметр?
     
  22. Maputo

    Maputo Активный пользователь

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    @romach, я и говорю, что много нужных параметров. Я не говорил лишние.
     
  23. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    Что значит "много"? То что там указаны возможные параметры не означает что вызывать нужно все.
     
  24. Maputo

    Maputo Активный пользователь

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    @romach, я это понимаю. Но так уж мне не повезло, что в первом же примере, в качестве параметра нужно было вводить свой пароль от почты.
     
  25. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    Короче, демагогия. ок
    --- Добавлено ---
    Демагогия, кстати, не в том смысле, что вопрос неоднозначен и правильного решения нет. Просто когда возможность использовать sendmail / mail / smtp и т.п. называют кучей параметров - логика бессильна )
     
    Maputo нравится это.