Левитан
  • Живая лента
  • Написать мне
  • Поиск
  • HostCMS 6. Не отправляются письма из магазина

    HostCMS 6. Не отправляются письма из магазина

    Интернет-магазины на HostCMS периодически «заглючивают» на этапе отправки письма администратору магазина и пользователю, который совершил заказ. Заказ, разумеется, отображается в административной панели, но вот Email-оповещение не приходит.

    Такая же ситуация может возникать и с другими модулями HostCMS, не только в интернет-магазине.

    Проблема может быть в двух случаях:

    1. На вашем хостинге отключена функция mail().
    2. Неверно настроен драйвер для отправки Email.

    На вашем хостинге отключена функция mail().

    В первом случае это можно легко проверить, путем создания php-файла (скрипта) в пару строк, где первым параметром функции mail() укажите вашу электронную почту, на которое придёт тестовое письмо:

    <?php
    echo mail('ваш@mail.ru', 'Проверка почты', 'Отправка писем успешно работает');
    

    Сохраняем, переносим этот файл на хостинг и открываем через браузер. Допустим, вы назвали файл test.php, а адрес вашего сайта http://myweb.com. Значит, перейти надо на http://myweb.com/test.php

    Если вы увидите цифру 1, значит, письмо отправилось. Далее, оно должно дойти на указанный вами Email. Проверьте также спам. Если письмо пришло - первый вариант мы отбрасываем.

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

    Перейдем ко второму случаю.

    Неверно настроен драйвер для отправки Email.

    Второй вариант также не очень сложный. Поддержка HostCMS отправляет всех пользователей с такой проблемой на страницу документации. Там описан процесс настройки SMTP вместо sendmail. Делаем всё, как указано на странице:

    Находим в файлах вашей системы HostCMS конфигурационный файл по адресу modules/core/config/mail.php

    Открываем его в текстовом редакторе:

    <?php
    
    return array (
    	'default' => array (
    		'driver' => 'sendmail',
    	),
    	'sendmail' => array (
    		'driver' => 'sendmail',
    	),
    	'smtp' => array (
    		'driver' => 'smtp',
    		'username' => 'address@domain.com',
    		'port' => '25', // для SSL порт 465
    		'host' => 'smtp.server.com', // для SSL используйте ssl://smtp.gmail.com
    		'password' => ''
    	)
    );
    
    

    В документации указано множество дополнительных настроек, но на практике они вам не нужны. Находим код:

    
        'smtp' => array (
            'driver' => 'smtp',
            'username' => 'address@domain.com',
            'port' => '25', // для SSL порт 465
            'host' => 'smtp.server.com', // для SSL используйте ssl://smtp.gmail.com
            'password' => ''
        )
    

    Здесь указываем настройки вашего SMTP-ящика. Обязательно укажите полностью ваш Email-адрес ('username') и пароль ('password').

    Допустим, если у вас Яндекс-почта, то настройки будут такие:

    
        'smtp' => array (
            'driver' => 'smtp',
            'username' => 'ЛОГИН@yandex.ru',
            'port' => '465', // для SSL порт 465
            'host' => 'ssl://smtp.yandex.ru', // для SSL используйте ssl://smtp.gmail.com
            'password' => 'ПАРОЛЬ'
        )
    

    Или Gmail:

    
    	'smtp' => array (
    		'driver' => 'smtp',
    		'username' => 'ЛОГИН@gmail.com',
    		'port' => '465', // для SSL порт 465
    		'host' => 'ssl://smtp.gmail.com', // для SSL используйте ssl://smtp.gmail.com
    		'password' => 'ПАРОЛЬ'
    	)
    

    Или Mail.ru:

    
    	'smtp' => array (
    		'driver' => 'smtp',
    		'username' => 'ЛОГИН@mail.ru',
    		'port' => '465', // для SSL порт 465
    		'host' => 'ssl://smtp.mail.ru', // для SSL используйте ssl://smtp.gmail.com
    		'password' => 'ПАРОЛЬ'
    	)
    

    После внесения ваших настроек необходимо изменить выбор почтового драйвера по умолчанию. Это делается в этом же файле (строки 4-6). Вместо:

    
    	'default' => array (
    		'driver' => 'sendmail',
    	),
    

    Укажем:

    
    	'default' => array (
    		'driver' => 'smtp', // заменить 'sendmail' на 'smtp'
    	),
    

    Вот файл целиком:

    <?php
    
    return array (
    	'default' => array (
    		'driver' => 'smtp',
    	),
    	'sendmail' => array (
    		'driver' => 'sendmail',
    	),
    	'smtp' => array (
    		'driver' => 'smtp',
    		'username' => 'ЛОГИН@mail.ru',
    		'port' => '465', // для SSL порт 465
    		'host' => 'ssl://smtp.mail.ru', // для SSL используйте ssl://smtp.gmail.com
    		'password' => 'ПАРОЛЬ'
    	)
    );
    

    Настройки для вашей почты можно найти в Интернете с ключевым словом SMTP.

    Если вас интересует профессиональная разработка сайтов на HostCMS – пишите мне. Удачи.

    20 января 2018 г.

    Юрий Левитан. Путь великого диктора. «Непрочное зачатие».

    20 января 2018 г.

    Юрий Левитан. Путь великого диктора. Детство.

    13 января 2018 г.

    Названия, которые большинство ведущих произносят неверно

    18 октября 2017 г.

    HostCMS 6. Не отправляются письма из магазина

    07 октября 2017 г.

    Оживляем навигаторы SHTURMANN

    06 октября 2017 г.

    Ударения в профессионализмах

    03 октября 2017 г.

    Ударения. История создания