Перейти к содержанию
  • В связи с блокировкой банка QIWI оплата через сайт не возможна.
    Для оплаты и получения дополнений просьба писать в личные сообщения
    Admin*у
    После оплаты Вам так же будет доступно скачивание дополнений и обновлений на данном форуме

Отправка писем в 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(). Данный метод выполнит попытку подключения к почтовому серверу, после чего отправит само письмо. Таким образом вы можете отправлять произвольные письма из кода контроллеров и модулей.

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

Ссылка на комментарий

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...