DbHelp.ru
Маленький Yii блог
Комментарии
Гость: http://ifipog.ixubybad.ru/2017-12-17-vzyat-v-dolg-na-kartu-v-ufe.htm http://mzeoskxv.ruzoworejy.ru/...
Гость: wh0cd1144039 [url=http://albuterol02.us.org/]Albuterol Sulfate[/url] [url=http://dapoxetine911.us.or...
Гость: wh0cd1144039 [url=http://cialis02.us.org/]generic cialis[/url] [url=http://tretinoin911.us.org/]tret...
Гость: wh0cd2594827 [url=http://pyridium911.us.com/]Pyridium[/url] [url=http://clozaril911.us.org/]clozaril...
Гость: order Retrovir in USA delivery NO PRESCRIPTION ; low prices Retrovir in Canada pharmacy without ...



Сервер Ultima Online - Forest Wars (от создателя данного блога)

Проблемы с кодировкой в теме письма

Рубрика: Что нового?

Оцените эту статью:

Рейтинг: 0.00 (0)
13 Июл. 2010
Опубликовать в Twitter Написать в Facebook Опубликовать в своем блоге livejournal.com

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

---

Как тема так и текст письма — задавался статически прямо в скрипте. Я конечно же подумал бы что виновата кодировка скрипта — но текст (тело) письма приходит ведь в нормальном формате! Начал копать всевозможные варианты как задать кодировку в mail() и тп. Все результаты ушли к тупому убийству времени, ничего не получилось.

Тут я вспомнил что когда то делал обзор одного из расширений позволяющих отправлять почту (вместе с вложениями и тп), назывался он «SwiftMailer». Не долго думая я нашел тему «Подключаем SwiftMailer к Yii» и подключил это дело к себе. Все получилось достаточно просто и компактно как в примере:


 function sendHtmlMail($from, $to, $subject, $body, $attachments = array()) {
    spl_autoload_unregister(array('YiiBase','autoload'));
    Yii::import('application.vendor.swift.swift_required', true);
    spl_autoload_register(array('YiiBase','autoload'));
 
    //Sendmail
    $transport = Swift_SendmailTransport::newInstance('/usr/sbin/sendmail -bs');
                    
    //Create the Mailer using your created Transport
    $mailer = Swift_Mailer::newInstance($transport);
    
    //Create a message
    $message = Swift_Message::newInstance($subject)
      ->setFrom(array($from))
      ->setTo(array($to))
      ->setBody($body)
      ;
    
    //Send the message
    $result = $mailer->send($message);
}

sendHtmlMail($settings->fromemail, $settings->email, "Новый заказ на сайте " . $settings->sitename, $message);

Как не странно — но все заработало. Заголовок и тело письма приходят в нормальной кодировке. Подключил я это дело максимум за 15 минут, а убил на ковыряние проблемы наверное пол дня.... Если столкнетесь с такой фигней как я — используйте SwiftMailer :)



Если хотите опубликовать этот материал у себя - пожалуйста, разместите ссылку на страницу откуда вы его взяли.
Другие yii статьи:

  1. Сегодня проверял гугл на наличие материалов про Yii и наткнулся на неплохую статью про srbac. Появилась на сайте автора она ... "Часть 1 : Yii модуль SRBAC"

  2. Если честно я немного подглядел список изменений которые уже были сделаны и решил опубликовать их для вас. Скорее всего изменения ... "Что нас ждет в 1.0.6?"

  3. Спасибо команде разработчиков нашего чудесного фреймворка за отличный подарочек под ёлку - новую версию yii. В релиз включено более 50 ... "Обновляемся, Yii 1.1.13"

[guest] Михаил

Было сказано: Вторник, 13 Июль 2010

тож было такое. нужно было закодировать тему:

Subject: =?charset?Encode_Method(1байт)?Title1?=\r\n
\t=?charset?Encode_Method(1байт)?Title2?=\r\n
Где: charset - кодировка символов;Encode_Method(1байт) - метод для декодирования ("B" - Base64 || "Q" -quoted-printable);Title1 - 1ая часть кодированного заголовка;Title2 - 2ая часть кодированного заголовка.

кстати, это повышает доверие антиспам-фильтров.

[guest] zolter

Было сказано: Вторник, 13 Июль 2010

Незнал, спасибо

[guest] Гость

Было сказано: Вторник, 13 Июль 2010

Просто стоит правильно формировать заголовки письма subject, from, to с указанием кодировки, метода кодирования - как написал Михаил

[guest] Гость

Было сказано: Вторник, 13 Июль 2010

А вы можете написать пример виджета на jQuery, например простейший показ 3 картинок в цикле. Чтобы понять, как код на jQuery правильно обернуть в виджет yii.

[guest] Гость

Было сказано: Вторник, 09 Май 2017

Несложная работа с обучением, высокая зарплата!

Вы работаете дома! Полностью честно и прозрачно;
Доступно для всех - неважно кто вы и какой у вас опыт работы в интернете!
Вы будете зарабатывать: свыше четырёх тысяч рублей в день!
Сложность: Несложно!
Оплата: - уже на следующий деньги у вас на счету!

Ознакомтесь с условиями у нас на сайте. > http://realno-money.tk/ < Скопируйте и вставьте в адресную строку Вашего браузера.

Оставить комментарий


Код:
Имя: