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

PHPMailer не отправляет вложение


Recommended Posts

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

 

// Admin Alert Mail
				if (in_array('order', (array)$this->config->get('config_mail_alert'))) {
					
					require_once(DIR_SYSTEM . '/PHPExcel/Classes/PHPExcel.php');
					require_once(DIR_SYSTEM . '/PHPExcel/Classes/PHPExcel/Writer/Excel2007.php');
		
					$phpexcel = new PHPExcel();
					
					$phpexcel->setActiveSheetIndex(0);
					$page = $phpexcel->getActiveSheet();
					$page->setTitle('Заказ №'. $order_id);
					
					$page->getColumnDimensionByColumn("1")->setAutoSize(true);
					$page->getColumnDimensionByColumn("2")->setAutoSize(true);
					$page->getColumnDimensionByColumn("3")->setAutoSize(true);
					$page->getColumnDimensionByColumn("4")->setAutoSize(true);
					$page->getColumnDimensionByColumn("5")->setAutoSize(true);
					$page->getColumnDimensionByColumn("6")->setAutoSize(true);
					$page->getColumnDimensionByColumn("7")->setAutoSize(true);
					$page->getColumnDimensionByColumn("8")->setAutoSize(true);		
					$page->getColumnDimensionByColumn("9")->setAutoSize(true);
				   
					$page->getStyle("A1")->getFont()->setBold(true);
					$page->getStyle("B1")->getFont()->setBold(true);        
					$page->getStyle("C1")->getFont()->setBold(true);
					$page->getStyle("D1")->getFont()->setBold(true);        
					$page->getStyle("E1")->getFont()->setBold(true);
					$page->getStyle("F1")->getFont()->setBold(true);        
					$page->getStyle("G1")->getFont()->setBold(true);
					$page->getStyle("H1")->getFont()->setBold(true);        
					$page->getStyle("I1")->getFont()->setBold(true);
					
					$page->setCellValue("A1", "Товар");
					$page->setCellValue("B1", "Высота мдф");
					$page->setCellValue("C1", "Ширина мдф");
					$page->setCellValue("D1", "Толщина мдф");
					$page->setCellValue("E1", "Цвет пленки");
					$page->setCellValue("F1", "Артикул пленки");
					$page->setCellValue("G1", "Декор");
					$page->setCellValue("H1", "Патина");
					$page->setCellValue("I1", "Количество");

					
					$subject = sprintf($language->get('text_new_subject'), html_entity_decode($this->config->get('config_name'), ENT_QUOTES, 'UTF-8'), $order_id);

					// HTML Mail
					$data['text_greeting'] = $language->get('text_new_received');

					if ($comment) {
						if ($order_info['comment']) {
							$data['comment'] = nl2br($comment) . '<br/><br/>' . $order_info['comment'];
						} else {
							$data['comment'] = nl2br($comment);
						}
					} else {
						if ($order_info['comment']) {
							$data['comment'] = $order_info['comment'];
						} else {
							$data['comment'] = '';
						}
					}

					$data['text_download'] = '';
					$data['text_footer'] = '';
					$data['text_link'] = '';
										
					$data['link'] = $order_info['store_url'] . 'admin/index.php?route=sale/order/info&order_id=' . $order_id;
					//$data['link'] = '';
					$data['download'] = '';

					// Text
					$text  = $language->get('text_new_received') . "\n\n";
					$text .= $language->get('text_new_order_id') . ' ' . $order_id . "\n";
					$text .= $language->get('text_new_date_added') . ' ' . date($language->get('date_format_short'), strtotime($order_info['date_added'])) . "\n";
					$text .= $language->get('text_new_order_status') . ' ' . $order_status . "\n\n";
					$text .= $language->get('text_new_products') . "\n";


					$i=2;/////////////
					foreach ($order_product_query->rows as $product) {
						$text .= $product['quantity'] . 'x ' . $product['name'] . ' (' . $product['model'] . ') ' . html_entity_decode($this->currency->format($product['total'] + ($this->config->get('config_tax') ? ($product['tax'] * $product['quantity']) : 0), $order_info['currency_code'], $order_info['currency_value']), ENT_NOQUOTES, 'UTF-8') . "\n";

						$order_option_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "order_option WHERE order_id = '" . (int)$order_id . "' AND order_product_id = '" . $product['order_product_id'] . "'");

						foreach ($order_option_query->rows as $option) {
							if ($option['type'] != 'file') {
								$value = $option['value'];
							} else {
								$value = utf8_substr($option['value'], 0, utf8_strrpos($option['value'], '.'));
							}

							$text .= chr(9) . '-' . $option['name'] . ' ' . (utf8_strlen($value) > 20 ? utf8_substr($value, 0, 20) . '..' : $value) . "\n";
						}

						$page->setCellValue("A".$i, $product['name']);
						$page->setCellValue("B".$i, '0');
						$page->setCellValue("C".$i, '0');
						$page->setCellValue("D".$i, '0');
						$page->setCellValue("E".$i, '0');
						$page->setCellValue("F".$i, '0');            
						$page->setCellValue("G".$i, '0');
						$page->setCellValue("H".$i, '0');
						$page->setCellValue("I".$i, $product['quantity']);
						
						$i++;	
					}
					
					header("Expires: Mon, 1 Apr 1974 05:00:00 GMT");
					header("Last-Modified: " . gmdate("D,d M YH:i:s") . " GMT");
					header("Cache-Control: no-cache, must-revalidate");
					header("Pragma: no-cache");
					header("Content-type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
					header("Content-Disposition: attachment; filename=" . "file.xlsx");
			 
					$objWriter = new PHPExcel_Writer_Excel2007($phpexcel);
					$objWriter->save(DIR_UPLOAD.'/file.xlsx'); 
					exit();				

					foreach ($order_voucher_query->rows as $voucher) {
						$text .= '1x ' . $voucher['description'] . ' ' . $this->currency->format($voucher['amount'], $order_info['currency_code'], $order_info['currency_value']);
					}

					$text .= "\n";

					$text .= $language->get('text_new_order_total') . "\n";

					foreach ($order_total_query->rows as $total) {
						$text .= $total['title'] . ': ' . html_entity_decode($this->currency->format($total['value'], $order_info['currency_code'], $order_info['currency_value']), ENT_NOQUOTES, 'UTF-8') . "\n";
					}

					$text .= "\n";

					if ($order_info['comment']) {
						$text .= $language->get('text_new_comment') . "\n\n";
						$text .= $order_info['comment'] . "\n\n";
					}

					$mail = new Mail();
					$mail->protocol = $this->config->get('config_mail_protocol');
					$mail->parameter = $this->config->get('config_mail_parameter');
					$mail->smtp_hostname = $this->config->get('config_mail_smtp_hostname');
					$mail->smtp_username = $this->config->get('config_mail_smtp_username');
					$mail->smtp_password = html_entity_decode($this->config->get('config_mail_smtp_password'), ENT_QUOTES, 'UTF-8');
					$mail->smtp_port = $this->config->get('config_mail_smtp_port');
					$mail->smtp_timeout = $this->config->get('config_mail_smtp_timeout');

					$mail->setTo($this->config->get('config_email'));
					$mail->setFrom($this->config->get('config_email'));
					$mail->setSender(html_entity_decode($order_info['store_name'], ENT_QUOTES, 'UTF-8'));
					$mail->setSubject(html_entity_decode($subject, ENT_QUOTES, 'UTF-8'));
					$mail->setHtml($this->load->view('mail/order', $data));
					$mail->setText($text);
					$mail->AddAttachment(DIR_UPLOAD.'/file.xlsx', "Заказ.xls");
					$mail->send();

					// Send to additional alert emails
					$emails = explode(',', $this->config->get('config_alert_email'));

					foreach ($emails as $email) {
						if ($email && preg_match($this->config->get('config_mail_regexp'), $email)) {
							$mail->setTo($email);
							$mail->send();
						}
					}
				}

В чем может быть проблема?

 

Змінено користувачем nash
Надіслати
Поділитися на інших сайтах


7 минут назад, AlexDW сказал:

exit();

спасибо)) не внимателен!

Змінено користувачем nash
Надіслати
Поділитися на інших сайтах


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

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

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

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

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

Вхід

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

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

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

×
×
  • Створити...

Important Information

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