Столкнулся со следующми проблеммами: При выборе почтового протокола "Mail" во вкладке Настройки-Почта, отправляются письма и админу и заказчику с идентичной закодированной темой письма такого вида: =?UTF-8?B?SGF1Y2sta29seWFza2EgLSDQt9Cw0LrQsNC3IDU4?= При этом тело письма нормально отображается. Кто сталкивался с подобной проблемой? Как решить? Так же попробовал сменить на протокол SMTP, который у меня нормально работал до ноября 2015 года, после чего отказался отправлять письма, по неведомой мне причине. Но чуда не произошло и письма не отправляются. В логе выдаёт такую ошибку: PHP Warning: fsockopen() [<a href='function.fsockopen'>function.fsockopen</a>]: unable to connect to ssl://smtp.yandex.ru:465 (Connection timed out) in /.............../system/library/mail.php on line 162 Версия ocStore 1.5.5.1.2 Ящик вида: [email protected] ssl://smtp.yandex.ru Порт: 465 Таймаут: 5
Попробуйте найти $subject поиском по файлам: function mail_utf8($to, $from, $subject, $message) { $subject = '=?UTF-8?B?' . base64_encode($subject) . '?='; $headers = "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/plain; charset=utf-8\r\n"; $headers .= "From: $from\r\n"; return mail($to, $subject, $message, $headers); } // пример использования mail_utf8('[email protected]', '[email protected]', 'Заголовок сообщения', 'Текст сообщения'); Или так: Надо поставить кодировку и саму тему закодировать функцией base64_encode() mail($mailto, "=?utf-8?B?".base64_encode($subject1)."?=", $body, $headers);
YoYo, спасибо! Но боюсь ваше решение не смогу реализовать, т.к. навыки программирования на уровне 0. По большей части использую копи-паст готовых решений.
Сделайте что бы письма отправлялись через smtp хостинга, а не яндекса,настройки возьмите у своего хостера.
Источник: https://opencartforum.com/topic/23861-решено-yandex-такой-yandex-не-отправляются-письма-выдает/ Решение: Не дождался я ответа от яндекса, но проблему решил!!! Открыл исходник письма которое приходит с этого ящика и обратил внимание, что в поле From между ?= и < стоит пробел. Добавил пробел в 93-ей строке файла system/library/mail.php Было так: $header .= 'From: ' . '=?UTF-8?B?' . base64_encode($this->sender) . '?=' . '<' . $this->from . '>' . $this->newline; Стало вот так: $header .= 'From: ' . '=?UTF-8?B?' . base64_encode($this->sender) . '?= ' . '<' . $this->from . '>' . $this->newline; И все заработало!