Jump to content
Sign in to follow this  
Gross1k

[Решено] Тема письма =?UTF-8?B?= или =?UTF-8?B?0JLQvtC/0YDQvtGBOiBTd2lzc0RlbnQ=?=

Recommended Posts

Добрый вечер, форумчане. Перерыл весь интернет, но дельного решения так и не нашел. Письма о новом заказе, клиенте приходят, но тема письма отображается некорректно. Помогите решить данную проблему, пожалуйста. Пользуюсь протоколом mail. Почта на яндексе.

Кину любую инфо по вашему запросу. Заранее благодарю!

Share this post


Link to post
Share on other sites

Причиной может быть кодировка файлов отвечающих за отправку письма, в которые были внесены правки.

Share this post


Link to post
Share on other sites

Причиной может быть кодировка файлов отвечающих за отправку письма, в которые были внесены правки.

Спасибо за ответ. Но вроде не вносил никаких правок в эти файлы (mail и order)... Если я сюда выложу, вы сможете посмотреть?

Share this post


Link to post
Share on other sites

Все файлы сохранял в UTF-8 - это 100%

Share this post


Link to post
Share on other sites

Вижу, что файлик полезный, но скачал, залил и в итоге белый экран((

Share this post


Link to post
Share on other sites

Я дал  две ссылки.

Share this post


Link to post
Share on other sites

Я дал  две ссылки.

При попытке запустить оба скрипта, что bomdel.php, что find_bom.php, ничего не происходит, просто белый экран. Либо я кривой, либо что-то, где-то не прописано(

c55f0c20edb1.png

Edited by Gross1k

Share this post


Link to post
Share on other sites

Тогда вариант номер два.Удалить в папке vqmod/xml все вк моды связанные с изменением письма, скачать  дистрибутив с той же версией опенкарта что используется и заменить на дефолтные файлы.

 

PS Не забываем делать бэкап любых файлов с которыми производим какие либо манипуляции.

  Решения выше иногда выпадают в "белый лист" но при этом вносят нужные правки.Обязательно проверить проблему на данном этапе.А то может её уже давно нет.

Share this post


Link to post
Share on other sites

Сейчас попробую, отпишусь о результате.

Увы, не помогло. Все такая же проблема с темой письма. У меня есть чувство, что проблема в mail.php. Если у вас есть настроение и возможность, посмотрите своим глазом, пож-ста

final class Mail {

protected $to;

protected $from;

protected $sender;

protected $subject;

protected $text;

protected $html;

protected $attachments = array();

public $protocol = 'mail';

public $hostname;

public $username;

public $password;

public $port = 25;

public $timeout = 5;

public $newline = "\r\n";

public $crlf = "\r\n";

public $verp = FALSE;

public $parameter = '';

public function setTo($to) {

$this->to = $to;

}

public function setFrom($from) {

$this->from = $from;

}

public function addheader($header, $value) {

$this->headers[$header] = $value;

}

public function setSender($sender) {

$this->sender = html_entity_decode($sender);

}

public function setSubject($subject) {

$this->subject= '=?UTF-8?B?' . base64_encode($subject) . '?=';

}

public function setText($text) {

$this->text = $text;

}

public function setHtml($html) {

$this->html = $html;

}

public function addAttachment($file, $filename = '') {

if (!$filename) {

$filename = basename($file);

}

$this->attachments[] = array(

'filename' => $filename,

'file' => $file

);

}

public function send() {

if (!$this->to) {

exit('Error: E-Mail to required!');

}

if (!$this->from) {

exit('Error: E-Mail from required!');

}

if (!$this->sender) {

exit('Error: E-Mail sender required!');

}

if (!$this->subject) {

exit('Error: E-Mail subject required!');

}

if ((!$this->text) && (!$this->html)) {

exit('Error: E-Mail message required!');

}

if (is_array($this->to)) {

$to = implode(',', $this->to);

} else {

$to = $this->to;

}

$boundary = '----=_NextPart_' . md5(time());

$header = '';

if ($this->protocol != 'mail') {

$header .= 'To: ' . $to . $this->newline;

$header .= 'Subject: ' . '=?UTF-8?B?' . base64_encode($this->subject) . '?=' . $this->newline;

}

$header .= 'Date: ' . date("D, d M Y H:i:s O") . $this->newline;

//$header .= 'From: "' . $this->sender . '" <' . $this->from . '>' . $this->newline;

//$header .= 'From: ' . $this->sender . '<' . $this->from . '>' . $this->newline;

$header .= 'From: ' . '=?UTF-8?B?' . base64_encode($this->sender) . '?=' . '<' . $this->from . '>' . $this->newline;

$header .= 'Reply-To: ' . $this->sender . '<' . $this->from . '>' . $this->newline;

$header .= 'Return-Path: ' . $this->from . $this->newline;

$header .= 'X-Mailer: PHP/' . phpversion() . $this->newline;

$header .= 'MIME-Version: 1.0' . $this->newline;

$header .= 'Content-Type: multipart/mixed; boundary="' . $boundary . '"' . $this->newline;

$header .= 'Content-Transfer-Encoding: 8bit' . $this->newline;

$header .= $this->newline;

if (!$this->html) {

$message = '--' . $boundary . $this->newline;

$message .= 'Content-Type: text/plain; charset="utf-8"' . $this->newline;

$message .= 'Content-Transfer-Encoding: 8bit' . $this->newline . $this->newline;

$message .= $this->text . $this->newline;

} else {

$message = '--' . $boundary . $this->newline;

$message .= 'Content-Type: multipart/alternative; boundary="' . $boundary . '_alt"' . $this->newline . $this->newline;

$message .= '--' . $boundary . '_alt' . $this->newline;

$message .= '' . $this->newline;

$message .= '' . $this->newline;

if ($this->text) {

$message .= $this->text . $this->newline;

} else {

$message .= '' . $this->newline;

}

$message .= '--' . $boundary . '_alt' . $this->newline;

$message .= 'Content-Type: text/html; charset="utf-8"' . $this->newline;

$message .= 'Content-Transfer-Encoding: 8bit' . $this->newline . $this->newline;

$message .= $this->html . $this->newline;

$message .= '--' . $boundary . '_alt--' . $this->newline;

}

foreach ($this->attachments as $attachment) {

if (file_exists($attachment['file'])) {

$handle = fopen($attachment['file'], 'r');

$content = fread($handle, filesize($attachment['file']));

fclose($handle);

$message .= '--' . $boundary . $this->newline;

$message .= 'Content-Type: application/octetstream' . $this->newline;

$message .= 'Content-Transfer-Encoding: base64' . $this->newline;

$message .= 'Content-Disposition: attachment; filename="' . basename($attachment['filename']) . '"' . $this->newline;

$message .= 'Content-ID: <' . basename($attachment['filename']) . '>' . $this->newline . $this->newline;

$message .= chunk_split(base64_encode($content));

}

}

$message .= '--' . $boundary . '--' . $this->newline;

if ($this->protocol == 'mail') {

ini_set('sendmail_from', $this->from);

if ($this->parameter) {

mail($to, '=?UTF-8?B?' . base64_encode($this->subject) . '?=', $message, $header, $this->parameter);

} else {

mail($to, '=?UTF-8?B?' . base64_encode($this->subject) . '?=', $message, $header);

}

} elseif ($this->protocol == 'smtp') {

$handle = fsockopen($this->hostname, $this->port, $errno, $errstr, $this->timeout);

if (!$handle) {

error_log('Error: ' . $errstr . ' (' . $errno . ')');

} else {

if (substr(PHP_OS, 0, 3) != 'WIN') {

socket_set_timeout($handle, $this->timeout, 0);

}

while ($line = fgets($handle, 515)) {

if (substr($line, 3, 1) == ' ') {

break;

}

}

if (substr($this->hostname, 0, 3) == 'tls') {

fputs($handle, 'STARTTLS' . $this->crlf);

while ($line = fgets($handle, 515)) {

$reply .= $line;

if (substr($line, 3, 1) == ' ') {

break;

}

}

if (substr($reply, 0, 3) != 220) {

error_log('Error: STARTTLS not accepted from server!');

}

}

if (!empty($this->username) && !empty($this->password)) {

fputs($handle, 'EHLO ' . getenv('SERVER_NAME') . $this->crlf);

$reply = '';

while ($line = fgets($handle, 515)) {

$reply .= $line;

if (substr($line, 3, 1) == ' ') {

break;

}

}

if (substr($reply, 0, 3) != 250) {

error_log('Error: EHLO not accepted from server!');

}

fputs($handle, 'AUTH LOGIN' . $this->crlf);

$reply = '';

while ($line = fgets($handle, 515)) {

$reply .= $line;

if (substr($line, 3, 1) == ' ') {

break;

}

}

if (substr($reply, 0, 3) != 334) {

error_log('Error: AUTH LOGIN not accepted from server!');

}

fputs($handle, base64_encode($this->username) . $this->crlf);

$reply = '';

while ($line = fgets($handle, 515)) {

$reply .= $line;

if (substr($line, 3, 1) == ' ') {

break;

}

}

if (substr($reply, 0, 3) != 334) {

error_log('Error: Username not accepted from server!');

}

fputs($handle, base64_encode($this->password) . $this->crlf);

$reply = '';

while ($line = fgets($handle, 515)) {

$reply .= $line;

if (substr($line, 3, 1) == ' ') {

break;

}

}

if (substr($reply, 0, 3) != 235) {

error_log('Error: Password not accepted from server!');

}

} else {

fputs($handle, 'HELO ' . getenv('SERVER_NAME') . $this->crlf);

$reply = '';

while ($line = fgets($handle, 515)) {

$reply .= $line;

if (substr($line, 3, 1) == ' ') {

break;

}

}

if (substr($reply, 0, 3) != 250) {

error_log('Error: HELO not accepted from server!');

}

}

if ($this->verp) {

fputs($handle, 'MAIL FROM: <' . $this->username . '>XVERP' . $this->crlf);

} else {

fputs($handle, 'MAIL FROM: <' . $this->username . '>' . $this->crlf);

}

$reply = '';

while ($line = fgets($handle, 515)) {

$reply .= $line;

if (substr($line, 3, 1) == ' ') {

break;

}

}

if (substr($reply, 0, 3) != 250) {

error_log('Error: MAIL FROM not accepted from server!');

}

if (!is_array($this->to)) {

fputs($handle, 'RCPT TO: <' . $this->to . '>' . $this->crlf);

$reply = '';

while ($line = fgets($handle, 515)) {

$reply .= $line;

if (substr($line, 3, 1) == ' ') {

break;

}

}

if ((substr($reply, 0, 3) != 250) && (substr($reply, 0, 3) != 251)) {

error_log('Error: RCPT TO not accepted from server!');

}

} else {

foreach ($this->to as $recipient) {

fputs($handle, 'RCPT TO: <' . $recipient . '>' . $this->crlf);

$reply = '';

while ($line = fgets($handle, 515)) {

$reply .= $line;

if (substr($line, 3, 1) == ' ') {

break;

}

}

if ((substr($reply, 0, 3) != 250) && (substr($reply, 0, 3) != 251)) {

error_log('Error: RCPT TO not accepted from server!');

}

}

}

fputs($handle, 'DATA' . $this->crlf);

$reply = '';

while ($line = fgets($handle, 515)) {

$reply .= $line;

if (substr($line, 3, 1) == ' ') {

break;

}

}

if (substr($reply, 0, 3) != 354) {

error_log('Error: DATA not accepted from server!');

}

fputs($handle, $header . $message . $this->crlf);

fputs($handle, '.' . $this->crlf);

$reply = '';

while ($line = fgets($handle, 515)) {

$reply .= $line;

if (substr($line, 3, 1) == ' ') {

break;

}

}

if (substr($reply, 0, 3) != 250) {

error_log('Error: DATA not accepted from server!');

}

fputs($handle, 'QUIT' . $this->crlf);

$reply = '';

while ($line = fgets($handle, 515)) {

$reply .= $line;

if (substr($line, 3, 1) == ' ') {

break;

}

}

if (substr($reply, 0, 3) != 221) {

error_log('Error: QUIT not accepted from server!');

}

fclose($handle);

}

}

}

}

?>

Share this post


Link to post
Share on other sites

Сейчас попробую, отпишусь о результате.

Увы, не помогло. Все такая же проблема с темой письма. У меня есть чувство, что проблема в mail.php. Если у вас есть настроение и возможность, посмотрите своим глазом, пож-ста

final class Mail {

protected $to;

protected $from;

protected $sender;

protected $subject;

protected $text;

protected $html;

protected $attachments = array();

public $protocol = 'mail';

public $hostname;

public $username;

public $password;

public $port = 25;

public $timeout = 5;

public $newline = "\r\n";

public $crlf = "\r\n";

public $verp = FALSE;

public $parameter = '';

public function setTo($to) {

$this->to = $to;

}

public function setFrom($from) {

$this->from = $from;

}

public function addheader($header, $value) {

$this->headers[$header] = $value;

}

public function setSender($sender) {

$this->sender = html_entity_decode($sender);

}

public function setSubject($subject) {

$this->subject= '=?UTF-8?B?' . base64_encode($subject) . '?=';

}

public function setText($text) {

$this->text = $text;

}

public function setHtml($html) {

$this->html = $html;

}

public function addAttachment($file, $filename = '') {

if (!$filename) {

$filename = basename($file);

}

$this->attachments[] = array(

'filename' => $filename,

'file' => $file

);

}

public function send() {

if (!$this->to) {

exit('Error: E-Mail to required!');

}

if (!$this->from) {

exit('Error: E-Mail from required!');

}

if (!$this->sender) {

exit('Error: E-Mail sender required!');

}

if (!$this->subject) {

exit('Error: E-Mail subject required!');

}

if ((!$this->text) && (!$this->html)) {

exit('Error: E-Mail message required!');

}

if (is_array($this->to)) {

$to = implode(',', $this->to);

} else {

$to = $this->to;

}

$boundary = '----=_NextPart_' . md5(time());

$header = '';

if ($this->protocol != 'mail') {

$header .= 'To: ' . $to . $this->newline;

$header .= 'Subject: ' . '=?UTF-8?B?' . base64_encode($this->subject) . '?=' . $this->newline;

}

$header .= 'Date: ' . date("D, d M Y H:i:s O") . $this->newline;

//$header .= 'From: "' . $this->sender . '" <' . $this->from . '>' . $this->newline;

//$header .= 'From: ' . $this->sender . '<' . $this->from . '>' . $this->newline;

$header .= 'From: ' . '=?UTF-8?B?' . base64_encode($this->sender) . '?=' . '<' . $this->from . '>' . $this->newline;

$header .= 'Reply-To: ' . $this->sender . '<' . $this->from . '>' . $this->newline;

$header .= 'Return-Path: ' . $this->from . $this->newline;

$header .= 'X-Mailer: PHP/' . phpversion() . $this->newline;

$header .= 'MIME-Version: 1.0' . $this->newline;

$header .= 'Content-Type: multipart/mixed; boundary="' . $boundary . '"' . $this->newline;

$header .= 'Content-Transfer-Encoding: 8bit' . $this->newline;

$header .= $this->newline;

if (!$this->html) {

$message = '--' . $boundary . $this->newline;

$message .= 'Content-Type: text/plain; charset="utf-8"' . $this->newline;

$message .= 'Content-Transfer-Encoding: 8bit' . $this->newline . $this->newline;

$message .= $this->text . $this->newline;

} else {

$message = '--' . $boundary . $this->newline;

$message .= 'Content-Type: multipart/alternative; boundary="' . $boundary . '_alt"' . $this->newline . $this->newline;

$message .= '--' . $boundary . '_alt' . $this->newline;

$message .= '' . $this->newline;

$message .= '' . $this->newline;

if ($this->text) {

$message .= $this->text . $this->newline;

} else {

$message .= '' . $this->newline;

}

$message .= '--' . $boundary . '_alt' . $this->newline;

$message .= 'Content-Type: text/html; charset="utf-8"' . $this->newline;

$message .= 'Content-Transfer-Encoding: 8bit' . $this->newline . $this->newline;

$message .= $this->html . $this->newline;

$message .= '--' . $boundary . '_alt--' . $this->newline;

}

foreach ($this->attachments as $attachment) {

if (file_exists($attachment['file'])) {

$handle = fopen($attachment['file'], 'r');

$content = fread($handle, filesize($attachment['file']));

fclose($handle);

$message .= '--' . $boundary . $this->newline;

$message .= 'Content-Type: application/octetstream' . $this->newline;

$message .= 'Content-Transfer-Encoding: base64' . $this->newline;

$message .= 'Content-Disposition: attachment; filename="' . basename($attachment['filename']) . '"' . $this->newline;

$message .= 'Content-ID: <' . basename($attachment['filename']) . '>' . $this->newline . $this->newline;

$message .= chunk_split(base64_encode($content));

}

}

$message .= '--' . $boundary . '--' . $this->newline;

if ($this->protocol == 'mail') {

ini_set('sendmail_from', $this->from);

if ($this->parameter) {

mail($to, '=?UTF-8?B?' . base64_encode($this->subject) . '?=', $message, $header, $this->parameter);

} else {

mail($to, '=?UTF-8?B?' . base64_encode($this->subject) . '?=', $message, $header);

}

} elseif ($this->protocol == 'smtp') {

$handle = fsockopen($this->hostname, $this->port, $errno, $errstr, $this->timeout);

if (!$handle) {

error_log('Error: ' . $errstr . ' (' . $errno . ')');

} else {

if (substr(PHP_OS, 0, 3) != 'WIN') {

socket_set_timeout($handle, $this->timeout, 0);

}

while ($line = fgets($handle, 515)) {

if (substr($line, 3, 1) == ' ') {

break;

}

}

if (substr($this->hostname, 0, 3) == 'tls') {

fputs($handle, 'STARTTLS' . $this->crlf);

while ($line = fgets($handle, 515)) {

$reply .= $line;

if (substr($line, 3, 1) == ' ') {

break;

}

}

if (substr($reply, 0, 3) != 220) {

error_log('Error: STARTTLS not accepted from server!');

}

}

if (!empty($this->username) && !empty($this->password)) {

fputs($handle, 'EHLO ' . getenv('SERVER_NAME') . $this->crlf);

$reply = '';

while ($line = fgets($handle, 515)) {

$reply .= $line;

if (substr($line, 3, 1) == ' ') {

break;

}

}

if (substr($reply, 0, 3) != 250) {

error_log('Error: EHLO not accepted from server!');

}

fputs($handle, 'AUTH LOGIN' . $this->crlf);

$reply = '';

while ($line = fgets($handle, 515)) {

$reply .= $line;

if (substr($line, 3, 1) == ' ') {

break;

}

}

if (substr($reply, 0, 3) != 334) {

error_log('Error: AUTH LOGIN not accepted from server!');

}

fputs($handle, base64_encode($this->username) . $this->crlf);

$reply = '';

while ($line = fgets($handle, 515)) {

$reply .= $line;

if (substr($line, 3, 1) == ' ') {

break;

}

}

if (substr($reply, 0, 3) != 334) {

error_log('Error: Username not accepted from server!');

}

fputs($handle, base64_encode($this->password) . $this->crlf);

$reply = '';

while ($line = fgets($handle, 515)) {

$reply .= $line;

if (substr($line, 3, 1) == ' ') {

break;

}

}

if (substr($reply, 0, 3) != 235) {

error_log('Error: Password not accepted from server!');

}

} else {

fputs($handle, 'HELO ' . getenv('SERVER_NAME') . $this->crlf);

$reply = '';

while ($line = fgets($handle, 515)) {

$reply .= $line;

if (substr($line, 3, 1) == ' ') {

break;

}

}

if (substr($reply, 0, 3) != 250) {

error_log('Error: HELO not accepted from server!');

}

}

if ($this->verp) {

fputs($handle, 'MAIL FROM: <' . $this->username . '>XVERP' . $this->crlf);

} else {

fputs($handle, 'MAIL FROM: <' . $this->username . '>' . $this->crlf);

}

$reply = '';

while ($line = fgets($handle, 515)) {

$reply .= $line;

if (substr($line, 3, 1) == ' ') {

break;

}

}

if (substr($reply, 0, 3) != 250) {

error_log('Error: MAIL FROM not accepted from server!');

}

if (!is_array($this->to)) {

fputs($handle, 'RCPT TO: <' . $this->to . '>' . $this->crlf);

$reply = '';

while ($line = fgets($handle, 515)) {

$reply .= $line;

if (substr($line, 3, 1) == ' ') {

break;

}

}

if ((substr($reply, 0, 3) != 250) && (substr($reply, 0, 3) != 251)) {

error_log('Error: RCPT TO not accepted from server!');

}

} else {

foreach ($this->to as $recipient) {

fputs($handle, 'RCPT TO: <' . $recipient . '>' . $this->crlf);

$reply = '';

while ($line = fgets($handle, 515)) {

$reply .= $line;

if (substr($line, 3, 1) == ' ') {

break;

}

}

if ((substr($reply, 0, 3) != 250) && (substr($reply, 0, 3) != 251)) {

error_log('Error: RCPT TO not accepted from server!');

}

}

}

fputs($handle, 'DATA' . $this->crlf);

$reply = '';

while ($line = fgets($handle, 515)) {

$reply .= $line;

if (substr($line, 3, 1) == ' ') {

break;

}

}

if (substr($reply, 0, 3) != 354) {

error_log('Error: DATA not accepted from server!');

}

fputs($handle, $header . $message . $this->crlf);

fputs($handle, '.' . $this->crlf);

$reply = '';

while ($line = fgets($handle, 515)) {

$reply .= $line;

if (substr($line, 3, 1) == ' ') {

break;

}

}

if (substr($reply, 0, 3) != 250) {

error_log('Error: DATA not accepted from server!');

}

fputs($handle, 'QUIT' . $this->crlf);

$reply = '';

while ($line = fgets($handle, 515)) {

$reply .= $line;

if (substr($line, 3, 1) == ' ') {

break;

}

}

if (substr($reply, 0, 3) != 221) {

error_log('Error: QUIT not accepted from server!');

}

fclose($handle);

}

}

}

}

?>

Наличие BOM проверил и ничего не обнаружено

Share this post


Link to post
Share on other sites

идти методом перебора

пробовать вместо почты на яндексе указать другой ящик

вообще не понимаю - нафига покупать домен, размещать магазин на хостинге, и при этом использовать халявный сторонний ящик :ugeek:

 

пробовать заменить файлы

catalog\model\checkout\order.php

system\library\mail.php

оригинальными из вашего дистрибутива (только копии своих создайте на всякий случай)

 

сравнивать эти ваши файлы с оригинальными, ищите отличия в subject

Share this post


Link to post
Share on other sites

идти методом перебора

пробовать вместо почты на яндексе указать другой ящик

вообще не понимаю - нафига покупать домен, размещать магазин на хостинге, и при этом использовать халявный сторонний ящик :ugeek:

 

пробовать заменить файлы

catalog\model\checkout\order.php

system\library\mail.php

оригинальными из вашего дистрибутива (только копии своих создайте на всякий случай)

 

сравнивать эти ваши файлы с оригинальными, ищите отличия в subject

Добрый день.

Пробовал другие ящики, правда бесплатные. Сегодня опробую платный, а-ля Gmail. 

Вы думаете, что проблема в самом ящике, а не в коде? 

А вот за эту идею спасибо, с работы вернусь, займусь.

Share this post


Link to post
Share on other sites

я про то, что даже если проблема не в ящике/почтовом сервере - все равно стоит использовать одноименное с доменом магазина имя, а не сторонний сервис

гораздо больше доверия, когда после заказа приходит письмо с ящика info@домен_магазина, а не с фиг-знает-что-за-имя@mail.ru или подобного ;)

Share this post


Link to post
Share on other sites

я про то, что даже если проблема не в ящике/почтовом сервере - все равно стоит использовать одноименное с доменом магазина имя, а не сторонний сервис

гораздо больше доверия, когда после заказа приходит письмо с ящика info@домен_магазина, а не с фиг-знает-что-за-имя@mail.ru или подобного ;)

Ну это понятно=) Если быть точным, то мой ящик имеет доменное имя. 

***@grossmall.ru

Про эти вещи я знаю давно и всегда сужу по себе, потому что когда вижу почту компании а-ля ***@mail.ru, gmail и т.д., то доверие пропадает. А по поводу G-mail я имел ввиду платный ящик с доменным именем, но другого проекта.

С Наступающим Новым Годом!

Share this post


Link to post
Share on other sites

Я напряг Сп Рег Ру, они провели тесты, в итоге печальная весть - "Обратитесь к разработчику сайта" - т.е. к самому себе :D

d0d6f9c2396d.png

Share this post


Link to post
Share on other sites

Ребята! Решил вопрос. Если у кого будет такая проблема, внимательно посмотрите mail.php в system/library/. 

В 37-39 строках намутил черт знает что.

Вот как было:

public function setSubject($subject) {

$this->subject = '=?UTF-8?B?' . base64_encode($subject) . '?='; 

}

 

Вот на что исправил:

public function setSubject($subject) {
$this->subject = $subject;
}

 

Том и Алекс, спасибо за суету, навели на верные мысли :)

Share this post


Link to post
Share on other sites

верни, как было.

это принудительное указание кодировки для темы письма.

если оно "мешает" - у тебя неправильная кодировка где-то ползет.

проверь все свои файлы; особенно те, что касаются заказов (*/checkout/*, и особенно - языковые) - всё должно быть в utf8.

еще может быть такое, что сервер(а) при проверках на спам/вирусы портят заголовки и кодировку.

Share this post


Link to post
Share on other sites

верни, как было.

..

еще может быть такое, что сервер(а) при проверках на спам/вирусы портят заголовки и кодировку.

скорей всего последний вариант

 

точно не скажу, в деревне сейчас - но по памяти, то ли в 1.5.х, то ли в 2х (а возможно и в обоих) это в оригиналах:

$this->subject = $subject;

 

Share this post


Link to post
Share on other sites

верни, как было.

на всякий случай уточню - как было в оригинальном файле движка.

Share this post


Link to post
Share on other sites

верни, как было.

это принудительное указание кодировки для темы письма.

если оно "мешает" - у тебя неправильная кодировка где-то ползет.

проверь все свои файлы; особенно те, что касаются заказов (*/checkout/*, и особенно - языковые) - всё должно быть в utf8.

еще может быть такое, что сервер(а) при проверках на спам/вирусы портят заголовки и кодировку.

В кодировке проблем не обнаружено. Проверил файлы на БОМ, проверил скриптом - ничего не обнаружено, ошибка в коде - однозначно. Утверждать точно не смогу, потому что опыт работы с opencart и созданиями сайтов - полтора месяца, но логика подсказывает. 

Дело в том, что по неопытности, когда еще сайт был на локальном хостинге, не отправлялись письма, поэтому я стал мудрить с кодом (спасибо разным форумам, ресурсам и моему энтузиазму). Видимо перемудренный вариант закинул на сервер, отсюда начались проблемы. До совета Алекса начал спонтанно читать иностранные форумы и ву-аля, нашел правильное отображение $subject. Похимичил и тут все наладилось. 

Для успокоения души заново скачал клиент OcStore, проверил оригинальный mail.php и там ровно также, как "я исправил" (Алекс - ты прав). Теперь хоть душа спокойна :)

P.S у меня OcStore 1.5.5.1.2

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.