Відсилання пошти в юнікоді

Поширте інформацію:

Дуже багато часу витратив, намагаючись заставити PHP-функцію mail() відправити повідомлення в UTF-8. Заголовки робив правильні, але повідомлення приходило закарлючками.

А причина виявилася в налаштуваннях PHP, параметр mbstring.func_overload

; overload(replace) single byte functions by mbstring functions.
; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(),
; etc. Possible values are 0,1,2,4 or combination of them.
; For example, 7 for overload everything.
; 0: No overload
; 1: Overload mail() function
; 2: Overload str*() functions
; 4: Overload ereg*() functions
; http://www.php.net/manual/en/mbstring.configuration.php#ini.mbstring.func-overload

Було:

mbstring.func_overload = 1

Встановив:

mbstring.func_overload = 2

і запрацювало.

Проте виникли проблеми з іншим сайтом (віртуальним хостом)!

З таким налаштуванням Smarty не хоче компілювати шаблони (перевірено на Smarty v. 3.1.18, PHP v. 5.4.27).

Добре, що PHP-FPM дозволяє створити кілька робочих пулів з різними конфігураціями.

UPD. Дурниці це!
Люди, залишайте

mbstring.func_overload = 0

і використовуйте для відсилання пошти якісно написані бібліотеки, наприклад, SwiftMailer або PHPMailer.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

Цей сайт використовує Akismet для зменшення спаму. Дізнайтеся, як обробляються ваші дані коментарів.