Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Не отображается логотип в письме


Androsss

Recommended Posts

В письме с информацией о заказе покупателю логотип не отображается, а во вложении к этому письму вместо файла картинки, что-то не открываемое вобще... Отзовитесь, пожалуйста, кто знает решение этой заморочки. Версия движка 1.0.1 Необходимый файл файл могу выслать.

Надіслати
Поділитися на інших сайтах


  • 3 weeks later...

Как правило логотип не отображается на mail.ru (на других не проверял) в Яндекс.почте все видно...

Можно убрать строчку (77) вывода логотипа в письме: /public_html/catalog/view/theme/default/template/mail/ ORDER... но приходит прикрепленный файл (который не открывается) это и есть логотип, который майл.ру сует в прикрепленный файл.... вот тут засада... тоже мучаюсь с этой проблемой...

Надіслати
Поділитися на інших сайтах


  • 3 weeks later...

Данный патч устраняет эту проблему. Он сделан для версий ocStore 0.x.x, но есть большая вероятность, что и для 1.0.1 подойдёт, так что пробуйте.

Заодно патч добавляет в письма заголовок "X-ocStore-Site:" с именем сайта, по которому можно фильтровать письма в почтовике (автоматически складывать их в отдельную папку или выделять цветом).

Строки, начинающиеся с "+++" содержат файл, который нужно править.

Строки, начинающиеся с "-" нужно удалить.

Строки, начинающиеся с "+" нужно вставить.

Строки, начинающиеся с пробела нужно оставить как есть (ориентируйтесь по ним, чтобы найти нужное место правки).

Игнорируйте строки, начинающиеся с "---" и с "@@" - это служебная информация.

--- upload/admin/controller/sale/contact.php.orig	2011-03-25 17:31:00.000000000 +1000
+++ upload/admin/controller/sale/contact.php	2012-01-24 13:39:32.000000000 +1100
@@ -107,7 +107,7 @@
					 $mail->setSubject($this->request->post['subject']);					
					
					 foreach ($attachments as $attachment) {
-						$mail->addAttachment($attachment['path'], $attachment['filename']);
+						$mail->addAttachment($attachment['path'], $attachment['filename'], true);
					 }
					
					 $mail->setHtml($message);
--- upload/catalog/model/checkout/order.php.orig	2011-04-08 03:07:00.000000000 +1100
+++ upload/catalog/model/checkout/order.php	2012-01-24 13:38:05.000000000 +1100
@@ -358,7 +358,7 @@
			 $mail->setSubject($subject);
			 $mail->setHtml($html);
			 $mail->setText(html_entity_decode($text, ENT_QUOTES, 'UTF-8'));
-			$mail->addAttachment(DIR_IMAGE . $this->config->get('config_logo'));
+			$mail->addAttachment(DIR_IMAGE . $this->config->get('config_logo'), '', true);
			 $mail->send();

			 if ($this->config->get('config_alert_mail')) {
--- upload/system/library/mail.php.orig	2011-03-22 23:59:00.000000000 +1000
+++ upload/system/library/mail.php	2012-01-25 15:09:58.000000000 +1100
@@ -46,17 +46,25 @@
		 $this->html = $html;
	 }

-	public function addAttachment($file, $filename = '') {
+	public function addAttachment($file, $filename = '', $inline = false) {
		 if (!$filename) {
			 $filename = basename($file);
		 }

		 $this->attachments[] = array(
+			'inline'   => $inline,
			 'filename' => $filename,
			 'file'	 => $file
		 );
	 }

+	private function filter_true($o) {
+		return $o['inline'];
+	}
+	private function filter_false($o) {
+		return !$o['inline'];
+	}
+
	 public function send() {
		 if (!$this->to) {
			 exit('Error: E-Mail to required!');
@@ -98,6 +106,7 @@
		 $header .= 'Reply-To: ' . '=?utf-8?B?'.base64_encode($this->sender).'?=' . '<' . $this->from . '>' . $this->newline;
		 $header .= 'Return-Path: ' . $this->from . $this->newline;
		 $header .= 'X-Mailer: PHP/' . phpversion() . $this->newline;
+		$header .= 'X-ocStore-Site: ' . getenv('SERVER_NAME') . $this->newline;
		 $header .= 'MIME-Version: 1.0' . $this->newline;
		 $header .= 'Content-Type: multipart/mixed; boundary="' . $boundary . '"' . $this->newline;

@@ -120,24 +129,47 @@
			 }

			 $message .= '--' . $boundary . '_alt' . $this->newline;
+			$attachments_filtered = array_filter( $this->attachments, array($this, 'filter_true') ); //оставить только вложения, внедрённые в html
+			if (count($attachments_filtered)) {
+				//если есть встроенные картинки, то создаём MIME-блок соответствующего типа (см. RFC-2387)
+				$message .= 'Content-Type: multipart/related; boundary="' . $boundary . '_related"' . $this->newline . $this->newline;
+				$message .= '--' . $boundary . '_related' . $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) {
+		foreach ($attachments_filtered as $attachment) {
			 if (file_exists($attachment['file'])) {
				 $handle = fopen($attachment['file'], 'r');
				 $content = fread($handle, filesize($attachment['file']));
+				fclose($handle);
+
+				$message .= '--' . $boundary . '_related' . $this->newline;
+				$message .= 'Content-Type: ' . mime_content_type($attachment['file']) . $this->newline;
+				$message .= 'Content-Transfer-Encoding: base64' . $this->newline;
+				$message .= 'Content-Disposition: inline' . $this->newline;
+				$message .= 'Content-ID: <' . $attachment['filename'] . '>' . $this->newline . $this->newline;
+				$message .= chunk_split(base64_encode($content));
+			}
+		}
+		if (count($attachments_filtered)) {
+			$message .= '--' . $boundary . '_related--' . $this->newline; //закрыть MIME-блок со встроенными картинками
+		}
+		$message .= '--' . $boundary . '_alt--' . $this->newline;

+		$attachments_filtered = array_filter( $this->attachments, array($this, 'filter_false') ); //исключить вложения, внедрённые в html
+		foreach ($attachments_filtered 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-Type: application/octet-stream; name="' . $attachment['filename'] . '"' . $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 .= 'Content-Disposition: attachment; filename="' . $attachment['filename'] . '"' . $this->newline . $this->newline;
				 $message .= chunk_split(base64_encode($content));
			 }
		 }

Патч создаёт письма по стандартам, так что приходящие письма должны показываться во всех программах, поддерживающих внедрённые изображения в теле писем, но всё-равно проверьте везде где сможете и отпишитесь. Я проверил только в Thunderbird и в gmail.com.

__

PS: далее в теме дана более правильная версия патча (пост #52).

Надіслати
Поділитися на інших сайтах


Строки, начинающиеся с "+++" содержат файл, который нужно править.

Строки, начинающиеся с "-" нужно удалить.

Строки, начинающиеся с "+" нужно вставить.

приложи к посту как атач, у меня в инфо описано как применять патчи TortoiseDiff, а не вручную.
Надіслати
Поділитися на інших сайтах

Новая версия патча. Минимизированая и затрагивает всего один файл, так что теперь любой сможет без особых усилий наложить этот патч на любую версию ocStore или OpenCart:

__

PS: Патч удалён, далее в теме (пост #52) есть подправленная версия этого же патча.

  • +1 1
Надіслати
Поділитися на інших сайтах


Новая версия патча. Минимизированая и затрагивает всего один файл, так что теперь любой сможет без особых усилий наложить этот патч на любую версию ocStore или OpenCart:

круто! долго разбирались с проблемой?
Надіслати
Поділитися на інших сайтах

  • 2 weeks later...

после установки изменений от 29.01 и 1.02 см сюда http://www.assembla.com/code/ocstoreru/subversion/changesets

стали дублироваться письма приходящие админу через форму задать вопрос. раньше приходило 1 письмо, а теперь два.

где смотреть?

Надіслати
Поділитися на інших сайтах


SeregaS: какая версия движка установлена и какой метод отправки писем используется (mail или smtp)?

Сколько раз в файле catalog/controller/information/contact.php присутствует вызов $mail->send() ??

Надіслати
Поділитися на інших сайтах


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

у меня в дополнительных адресах есть еще адрес и с него настроена переадресация на основной, вот письма и дублируются.

Надіслати
Поділитися на інших сайтах


мужики , а как патч этот ставить?подкиньте инструкцию или расскажите :) Или это целое дело ?))

на логотип мне всеравно, мне бы этот дурной файл с письма снести! Лого сносил с 77строки ордер ,но файл какого-то болта остается :(

Надіслати
Поділитися на інших сайтах


0.2 не развивается, она всё ещё поддерживается. Кому-то хватает её функционала, кому-то не нравится 1.x, кому-то стабильность важнее новых фич.

Надіслати
Поділитися на інших сайтах


xttp: если описанных в этой теме инструкций для вас недостаточно, то ждите выхода ocStore v0.2.3

Тебя человек спрашивает, конкретно для последней версии скрипта.
  • +1 1
Надіслати
Поділитися на інших сайтах


DV0995: какой человек? Что спрашивает? Почему вы говорите от его имени? - он вам делегировал такие полномочия?

Тут все ясно. Или вы товарищ дурак, или прикидываешся. Объясняю для первого и более вероятного варианта:

1) Пользователь форума с ником xttp

2) Спрашивает "а как патч этот ставить?"

3) Дополняю от своего имени "конкретно для последней версии скрипта".

P.s. По поводу "делегирования полномочий" это в школу...

Надіслати
Поділитися на інших сайтах


Эй-эй )) Мужики не ругайтесь, лучше скажите как его поставить, ибо инструкций тут не то-что недостаточно,их тут по всей видимости НЕТУ ))))

Надіслати
Поділитися на інших сайтах


Эй-эй )) Мужики не ругайтесь, лучше скажите как его поставить, ибо инструкций тут не то-что недостаточно,их тут по всей видимости НЕТУ ))))

Читайте внимательней данную тему - в постах номер 3 и номер 5 есть инструкции для ручного и автоматического наложения патча.
Надіслати
Поділитися на інших сайтах


Тут все ясно. Или вы товарищ дурак, или прикидываешся. Объясняю для первого и более вероятного варианта:

...

P.s. По поводу "делегирования полномочий" это в школу...

И я, типа, должен помогать человеку, разговаривающему со мной в таком тоне? Сначала пройдите курсы по вежливости и уважению. Затем - дополнительные курсы, где учат не говорить за других и извиняться.
Надіслати
Поділитися на інших сайтах


DV0995: какой человек? Что спрашивает? Почему вы говорите от его имени? - он вам делегировал такие полномочия?

Спрашивает пользователь форума поддержки Вашего скрипта....Вы же ОС Team...или это только статус?Я вот например тоже не особо понял инструкцию...и наверное процентов 70 пользователей форума тоже....зачем отвечать грубостью? Неужели потратить 5 минут на описание установки данного патча настолько сложно, что Вам лучше съехать на выход новой версии, ждите (а с Ваших слов звучало как - "раз Вы дебил")...грубо!Не красиво!И вообще.... ...

И я, типа, должен помогать человеку, разговаривающему со мной в таком тоне? Сначала пройдите курсы по вежливости и уважению. Затем - дополнительные курсы, где учат не говорить за других и извиняться.

А Вы обратите внимание на то как Вы ответили товарищу Xttp...

И я смотрю, что Вы прошли курсы вежливости раз сразу после коммента спрашиваете "Какому человеку?"...или на курсах вежливости не учат считать пользователей форумов за людей?Или может быть мы просто не достойны Вашего внимания? А от куда такие слова? - делегировал полномочия...это звучало как вот я такой умный....знаете? Хочется сказать намного больше...Да вот по мимо Вас - Высоко-уважаемый Sammy95 есть еще люди на форуме...

Простите....но Вы не правы....

(ОДНО БОЛЬШОЕ ИМХО)

Надіслати
Поділитися на інших сайтах


Так, давайте разбираться по пунктам:

Спрашивает пользователь форума поддержки Вашего скрипта....

Понятно что пользователь, не понятно, что из этого следует.

Вы же ОС Team...или это только статус?

По вашему, это накладывает на меня обязанности отвечать на все вопросы на форуме? А я имею право не знать ответов на некоторые из них? А имею право потратить своё время как-то иначе?

Я вот например тоже не особо понял инструкцию...и наверное процентов 70 пользователей форума тоже....

Что-то не поняли - можно задать конкретные вопросы? Или я сам должен спросить, что именно вам не понятно? Или вы считаете меня телепатом?

зачем отвечать грубостью?

Где конкретно была грубость с моей стороны?

Неужели потратить 5 минут на описание установки данного патча настолько сложно, что Вам лучше съехать на выход новой версии, ждите (а с Ваших слов звучало как - "раз Вы дебил")...

Т.е. если вам не ответили на вопрос удовлетворительно, то вы автоматически полагаете что вас считают дебилом? А если вы на форуме производителей самолётов зададите вопрос о том, как приделать новое крыло и вас попросят дождаться выпуска готовящейся модели - тоже подумаете, что вас держат за идиота? (грубый пример, но мысль, надеюсь, ясна).

Я прекрасно понимаю, что у всех разные профессиональные области, и не считаю дебилами всех, кто далёк от программирования. И да, мне легче съехать на выход новой версии, чем пытаться каждому отвечать на такие общие вопросы, ответ на которые уже был дан выше по теме (появятся более конкретные вопросы - задавайте, с удовольствием отвечу, если смогу). Если я буду тратить время на каждого гуманитария (на всякий случай: гуманитарий - не обидное слово, а направление в науке), то новая версия никогда не выйдет (у меня ещё и работа есть, и отдохнуть тоже хочется).

грубо!Не красиво!И вообще.... ... А Вы обратите внимание на то как Вы ответили товарищу Xttp...

Нормально ответил, не грубил и дебилом никого не называл. Не надо выдумывать и приписывать мне то, чего я не говорил.

И я смотрю, что Вы прошли курсы вежливости раз сразу после коммента спрашиваете "Какому человеку?"...или на курсах вежливости не учат считать пользователей форумов за людей?

Ну вот вы опять навыдумывали невесть что и приписали мне то, чего я вовсе не имел ввиду. "Какому человеку?" - ударение надо ставить на слове "какому", а не "человеку"! Это я даже не знаю, как надо читать, чтобы весь смысл перекаверкать.

Или может быть мы просто не достойны Вашего внимания? А от куда такие слова? - делегировал полномочия...это звучало как вот я такой умный....знаете?

Я не знаю как это звучало в вашей голове, но я просто не люблю общаться через посредников - игр в испорченный телефон мне и на работе хватает. В исходном вопросе было два вопроса и ни слова про версию, а в посте человека, взявшегося говорить от чужого имени, ещё меньше информации, на которую можно было бы ответить (особенно если учесть, что в настоящее время существует две ветки ocStore плюс OpenCart -- и у всех есть последняя версия). Если у самого есть вопросы - можно их нормально сформулировать и задать от своего имени, а не приписывать другим свои домыслы?

Хочется сказать намного больше...Да вот по мимо Вас - Высоко-уважаемый Sammy95 есть еще люди на форуме...

Именно для них я и работаю над новой версией в своё свободное время. А конкретно сейчас я вынужден тратить это время на выяснение отношений, потому что вам показалось, что я такой-сякой, недостаточно внимания уделил конкретно вам (в лице товарища (и человека - это специально для вас приписочка) xttp).

И на случай, если вы опять поймёте мой пост как-то неправильно - здесь дан вежливый подробный ответ без всяких намёков и грубостей.

И ещё раз повторяю: появятся конкретные вопросы - задавайте, не стесняйтесь.

  • +1 1
Надіслати
Поділитися на інших сайтах


Спрашивает пользователь форума поддержки Вашего скрипта....Вы же ОС Team...или это только статус?Я вот например тоже не особо понял инструкцию...и наверное процентов 70 пользователей форума тоже....зачем отвечать грубостью?

DV0995 изначально задал вопрос в грубой форме от лица другого человека, на конкретное замечание ответил ещё большей грубостью.

PerrySS, если что-то не ясно - спросите прямо. если пользователь в OC Team это не значит, что он обязан помогать всем и каждому. большинству или хотя бы части и не обязан а по своему усмотрению.

Sammy95 потратил своё время, что бы исправить баг разработчиков OpenCart за что ему больше спасибо. надеюсь эти глупые нападки не повлияют на его желание и дальше помогать community ocStore.

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.