О web-разработке
и даже немного больше...

Отправка писем в OpenCart

OpenCart является одним из популярных движков на которых можно за короткое время развернуть полноценный интернет магазин. Современный интернет-магазин сложно представить без функции отправки почтовых сообщений. Почтовые сообщения позволяют получать различные уведомления как владельцам сайта, так и покупателям. В свою очередь побуждая их к проявлению нужной активности и не только.
В данном посту мы рассмотрим пример отправки почтовых сообщений через свои скрипты. В системе OpenCart существует базовый набор самых необходимых почтовых уведомлений. Эти почтовые уведомления как правило прописаны в самих модулях. В некоторых ситуациях бывает необходимо сделать самостоятельную отправку письма. Рассмотрим простой пример, как можно отправить своё почтовое сообщение на какой-либо адрес в OpenCart 2.3.

Параметры подключения к почтовому серверу

Разделить процесс отправки для наглядности можно на два этапа. Первый – мы задаем основные настройки подключения к самому серверу почты.

// создаём объект класса Mail
$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'); 

Настройка полей письма

Практически все параметры типичны для всех почтовых серверов. Если вам приходилось до этого настраивать почту, то думаю с ними вам будет и так всё понятно. Кроме того, большинство параметров берутся из настроек самого сайта и менять в этом случае нет необходимости. Второй этап – формирования самого почтового сообщения:

// Email-адрес получателя письма
$mail->setTo($order_info['email']);

// 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/order)
$mail->setHtml($this->load->view('mail/order', $data));

// текст сообщения
$mail->setText($text);

// отправка
$mail->send();

Как можно заметить из кода, большинство параметров достаются из самих настроек сайта, посредством метода $this->config->get(). В большинстве случаев менять параметры подключения в данном коде не нужно. Т.к. если они прописаны в настройках сайта, они так же будут использованы и в этом коде. Получается вам предстоит лишь настроить лишь поля, которые заданы на втором этапе (указать получателя, тему, и само сообщение).

После того как все параметры заданы, инициализация отправки происходит посредством использования метода send(). Данный метод выполнит попытку подключения к почтовому серверу, после чего отправит само письмо. Таким образом вы можете отправлять произвольные письма из кода контроллеров и модулей.

Если письма не уходят, то стоит обратить внимание на почтовые настройки самого сайта. Убедиться в том, что почта настроена верно, и другие стандартные письма отправляются исправно. Довольно часто бывает так что требуется обратиться в самому хостеру, чтобы они вам помогли с настройками почтового сервера, со своей стороны. Это делается в том случае, когда почта вся настроена, но письма все-равно не уходят по причине политики безопасности сервера.

На этом всё, всем удачи!

Опубликован: 25.10.2019 г.

См. также:

Обращение к модели в контроллере OpenCart
Платёжные системы в OpenCart
Переключение OpenCart с HTTP на HTTPS
Сброс пароля администратора в OpenCart
Как в OpenCart очистить кэш?
Как установить модуль в OpenCart 2.x?
Как поменять статус заказа в OpenCart?
Сортировка товаров в OpenCart

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Комментарии
  • Загрузка...
Друзья сайта