Parus16.ru

Парус №16
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Оптимизация работы сайта и сервера под 1С-Битрикс для повышения быстродействия

Оптимизация работы сайта и сервера под 1С-Битрикс для повышения быстродействия

Оптимизация работы сайта и сервера под 1С-Битрикс

Делаем для того, чтобы смогли откатить изменения, если что-то пойдет не так.

  1. Перейдите в раздел /bitrix/admin/dump.php?lang=ru
  2. Укажите место и настройки для сохранения копии сайта
  3. Кликните «Создать резервную копию»
  4. Дождитесь окончания архивации

Временное закрытие публичной части сайта

Если сайт в публичном доступе, то посетители могут помешать сбросить до нуля кэш и не только в последующих шагах оптимизации 1С-Битрикс

  1. Перейдите в раздел /bitrix/admin/settings.php?lang=ru
  2. Прокрутите вниз до раздела » Служебные процедуры»
  3. Закройте доступ для посетителей

Очистка файлов кеша

Часто тормоза и чрезмерная нагрузка на сервер, является не правильно сгенерированный кэш с повреждениями, исчерпание доступного места этим кэшем, неправильно настроены права на папки с кэшем. Следующая ошибка показывает случай исчерпания свободного места

Если у вас нет такой ошибки, то лучше использовать метод через WEB-интерфейс.

Через WEB-интерфейс (панель администратора Битрикс)

  1. Перейдите в раздел /bitrix/admin/cache.php?lang=ru
  2. Перейдите на вкладку «Очистка файлов кеша»
  3. Нажмите на кнопку «Начать»
  4. Дождитесь окончания очистки кеша

Через SHH-клиент (опасный метод)

  1. Очистите папки «/bitrix/cache/ » и «/bitrix/managed_cache/»
  2. Выполните запрос в MySQL «TRUNCATE TABLE b_cache_tag»
  3. Повторить действия для WEB-интерфейса

Уменьшаем размер кэша меню

Часто выявляется большой размер папки с кэшем меню «/bitrix/managed_cache/MYSQL/menu/» превышающий размеры самого сайта. Причиной является, что каждого меню создается отдельный кэш при разных ссылках для разных пользователей.

Если меню в разных директориях не меняется и не перестраивается, то задаем по одному кэшу для каждого меню в свойствах вызова компонента меню

Если меню не меняется для разных пользователей, то не учитываем права доступа

Параметры компонента меню

Пройти проверку сайта

  1. Перейдите в раздел /bitrix/admin/site_checker.php?lang=ru
  2. Кликните на «Начать тестирование»
  3. Дождитесь окончания процедуры тестирования
  4. Исправьте ошибки

Проверка БД

  1. Перейдите в раздел /bitrix/admin/repair_db.php?lang=ru
  2. Кликните на «Проверить / восстановить таблицы»
  3. Дождитесь окончания проверки

Оптимизация БД

  1. Перейдите в раздел /bitrix/admin/repair_db.php?optimize_tables=Y&lang=ru
  2. Кликните на «Проверить / восстановить таблицы»
  3. Дождитесь окончания проверки

Переводим все таблицы в InnoDB

  1. Перейдите в раздел /bitrix/admin/perfmon_tables.php?lang=ru
  2. Прокрутите вниз страницы
  3. Кликните на «Для всех»
  4. Подтвердите выбор во всплыващем окне
  5. Из выпадающего списка выберите «Преобразовать в InnoDB»
  6. Кликните на «Применить»
  7. Дождитесь окончания конвертации

Проверяем конфигурацию

  1. Перейдите в раздел /bitrix/admin/perfmon_panel.php?lang=ru
  2. Выберите вкладку «Конфигурация»
  3. Проверьте значение «Конфигурация PHP»
  4. Выполните «Рекомендации»

Проверяем настройки 1С-Битрикс

Вид страницы зависит от редакции 1С-Битрикс.

  1. Перейдите в раздел /bitrix/admin/perfmon_panel.php?lang=ru
  2. Выберите вкладку «Битрикс»
  3. Выполните «Рекомендации»

Устанавливаем тип хранения кэша

Инструкция по настройке кеширования в статье Использование кеширования в оперативной памяти

Урок 1: устанавливаем и настраиваем Битрикс

Наша задача в этом уроке — установить чистый Битрикс, без каких-либо шаблонов и дополнений. Перед началом убедитесь, что ваш хостинг соответствует техническим требованиям Битрикса, их можно посмотреть по этой ссылке: https://www.1c-bitrix.ru/products/cms/requirements.php

Загружаем дистрибутив Битрикса на свой сайт

Скачиваем архив с официального сайта 1c-bitrix.ru, прямая ссылка на страницу загрузок: https://www.1c-bitrix.ru/download/cms.php

Здесь в блоке «Дистрибутивы» видим ссылки на различные редакции Битрикса: Старт, Стандарт, Малый бизнес и т.п.:

Дистрибутивы на сайте 1c-bitrix.ru

Не буду детально разбирать различия между редакциями, но чем «старше» редакция, тем больше функционала в ней есть и тем дороже она стоит 🙂

Мы будем делать простейший сайт, поэтому скачиваем самую «младшую» редакцию – Старт. Загружайте архив на свой хостинг в директорию сайта и распаковывайте.

Устанавливаем Битрикс

Открываем главную страницу сайта и начинаем процесс установки. На первом экране жмем «Далее»:

Первый экран при установке Битрикса

Принимаем лицензионное соглашение (предварительно прочитав его, конечно же) и снова жмем «Далее»:

Лицензионное соглашение

Мы устанавливаем демо-версию, поэтому регистрировать Битрикс пока что не будем => убираем галочку «Я хочу зарегистрировать свою копию продукта, устанавливать решения из Маркетплейс и получать обновления». Сайт будем устанавливать в кодировке UTF-8 => отмечаем чекбокс «Установить в кодировке UTF-8» и жмем «Далее»:

Параметры установки

Теперь нам нужно убедиться, что настройки хостинга соответствуют требованиям Битрикса. В моем случае два параметра подсвечены красным цветом:

Проверка настроек хостинга

Версия веб-сервера не выяснен – если в самом начале вы убедились, что версия веб-сервера соответствует требованиям Битрикса, то на это предупреждение можно не обращать внимания. Практика показывает, что скрипт установщика очень часто не может определить версию веб-сервера, даже если она соответствует требованиям Битрикса.

Читайте так же:
База данных для автосервиса

mbstring.func_overload – а вот этот параметр обязательно нужно исправить. Обычно его можно изменить в настройках PHP, в личном кабинете хостинга.

Устанавливаю нужное значение mbstring.func_overload в настройках хостинга и продолжаю установку.

Следующий шаг – создание и настройка соединения с базой данных. В описании курса мы договаривались, что вы должны уметь это делать 🙂 Поэтому создайте базу данных, введите нужные параметры и нажмите «Далее»:

Вводим параметры соединения с базой данных

Теперь ждем окончания установки:

Ждем, пока Битрикс установится

Далее появляется окно для ввода данных администратора. Вводим необходимую информацию и снова жмем «Далее»:

Вводим данные администратора

На следующем шаге Битрикс предлагает нам установить одно из готовых решений (шаблонов). Мы решили, что в следующем уроке будем сами создавать свой шаблон с нуля, поэтому устанавливать готовые решения не будем. Чтобы ничего не устанавливать — выбираем вариант «Демо-сайт для разработчиков», жмем «Далее»:

Выбираем решение для установки

И отменяем установку решения, нажав «Отмена», а затем «Ок» во всплывающем окне:

Отменяем установку стандартного решения

Отлично, решение не установилось, жмем кнопку «Перейти на сайт»:

Всё ок, решение не установилось.

На этом установка Битрикса завершена, а мы попали на главную страницу. В самом верху у нас отображается панель администратора с вкладками «Сайт» и «Администрирование». Вкладка «Сайт» — это публичный раздел (который виден всем посетителям). Вкладка «Администрирование» — это админка. На протяжении работы с сайтом мы будем переключаться между этими вкладками:

Вкладки "Сайт" и "Администрирование"

Удаляем лишние установщики

Вы наверняка заметили, что дистрибутив Битрикса был очень объемным (около 200 мегабайт в моем случае). Удалим лишние файлы, чтобы сайт занимал немного меньше места.

Удалим предустановленное решение из раздела «Маркетплейс». Идем на вкладку «Администрирование», далее Marketplace => Установленные решения и удаляем имеющееся там решение:

Удаляем решение из раздела "Маркетплейс"

Это еще не всё, после удаления снова возвращаемся в список решений, нажав кнопку «Вернуться в список»:

Возвращаемся к списку решений

Решение всё еще осталось на сайте. Теперь нам нужно его стереть:

Стираем решение

В итоге в списке решений должно быть пусто:

В списке решений теперь ничего нет

Отлично, теперь идем в Настройки => Настройки продукта => Список мастеров и удаляем установщик демо-сайта:

Удаляем установщик демо-сайта

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

Запускаем проверку системы

В Битриксе есть инструмент «Проверка системы», который помогает найти причины проблем в работе сайта. У нас никаких проблем и ошибок в работе сайта нет, но после установки Битрикса все-таки стоит запустить этот инструмент. В админ панели идем в раздел Настройки => Инструменты => Проверка системы и нажимаем кнопку «Начать тестирование»:

Запускаем проверку системы

В моем случае есть несколько ошибок и замечаний, а именно:

Ошибки default_socket_timeout и max_input_vars Замечание про агенты Замечание про длинные строки Ошибка переменной sql_mode

Справа у каждого пункта есть иконка вопроса, нажав на которую можно получить подробную информацию. Разберем эти ошибки.

Эти две ошибки можно исправить, добавив 2 строчки в файл .htaccess, который лежит в корне сайта:

Это не критичное замечание. Пока что не будем вникать в то, что собой представляют Агенты в Битриксе. Просто отмечу, что до тех пор, пока вы не создаете своих Агентов, можно не беспокоиться о переводе Агентов на CRON.

И это замечание тоже не критично, если сайт работает без ошибок – это предупреждение можно игнорировать (на моей практике из-за него никогда не возникало проблем).

Кликаем на знак вопроса справа от этого пункта и получаем решение проблемы:

Решение проблемы с sql_mode

Вносим указанный код в указанные файлы.

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

Ошибки, которые могут возникнуть на этапе установки Битрикса

Parse error: syntax error, unexpected ‘::’ (T_PAAMAYIM_NEKUDOTAYIM)

Эта ошибка может появляться при первоначальном открытии сайта. Полный текст ошибки выглядит примерно так:

Скорее всего, проблема кроется в версии PHP. На момент написания этого урока рекомендуемая версия PHP для Битрикса – 7.2. Попробуйте выбрать её в настройках хостинга.

Ваша версия MySql не удовлетворяет минимальным техническим требованиям продукта.

Эта ошибка возникает после ввода параметров соединения с базой данных:

Читайте так же:
Видео с приватных камер

Ваша версия MySql не удовлетворяет минимальным техническим требованиям продукта.

Скорее всего, на хостинге используется устаревшая версия MySQL. На момент написания этого урока версия MySQL должна быть не ниже 5.6.

Если Ваш хостинг использует старую версию MySQL и её никак нельзя обновить – вам пора задуматься о смене хостинга.

7 смертных грехов разработки на 1С-Битрикс

7 смертных грехов разработки на Bitrix

1. Изменять все стандартное/Изменять содержимое папки bitrix

Изменение всего, что лежит в папке /bitrix/ — табу.

Если вам нужно изменить шаблон компонента — копируйте его в шаблон сайта.

Если вам нужно изменить компонент — используйте result_modifier.php, component_epilog.php (про них я подробно писал в этой статье), напишите свой компонент, в конце концов.

Если вам нужно изменить модуль — медицина бессильна пишите свой, наследуйтесь от стандартных.

Если вы не послушаетесь и дадите слабину хотя бы в одном – можете попрощаться с беззаботным обновлением платформы. А такая необходимость рано или поздно настанет. Не говоря о том, что искать файлы будет сложнее.

Для пользовательских модулей/компонентов/шаблонов/обработчиков должна использоваться папка /local/.

Добавляйте папку /bitrix/ в .gitignore. Если в вашем git репозитории есть файлы /bitrix/, значит, скорее всего, что-то вы делаете не так. Вы можете подумать, что есть исключения. Да, но прибегать к созданию чего-либо в папке Bitrix нужно только если по-другому никак.

2. Получать данные в template.php

Никогда, слышите, никогда не делайте этого! Я говорю о CIBlockElement::GetList (и подобных им функциях) в template.php.

Если вам нужно получить какие-то дополнительные данные используйте result_modifier.php или component_epilog.php. Серьезно. Все что Вам нужно — лишь создать файл в папке шаблона. Это займет не на много больше времени, чем писать код в самом шаблоне.

Шаблон должен быть использован только для вывода информации. Ни для чего больше. Если вычисления (получение дополнительных данных, их модификация) находятся в шаблоне, вы становитесь сильно зависимы от порядка выполнения кода.

Допустим, необходимо посчитать общее количество просмотров всех статей на странице и вывести значение. Если вы разместите вычисления в цикле вывода статей, полученное значение можно будет использовать только после последней статьи. Простая задача по переносу блока наверх страницы превратится в ад.

3. Неверное подключение скриптов и стилей сайта

Неправильное подключение стилей и скриптов Битрикс

Откройте свой сайт, найдите основной шаблон и откройте файл header.php.

Если вы видите что-то похожее — гоните Вашего разработчика взашей.

В Битриксе вполне неплохой механизм автоматического объединения и минификации скриптов, кроме того, Битрикс умеет перемещать JS в конец страницы, благодаря чему сайт быстрее грузится. Если кто вдруг не знал, вся эта годнота включается в настройках Главного модуля:

Настройка сжатия и объединения скриптов и стилей Битрикс

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

Соберите скрипты из шаблона сайта, поместите их в JS файл, а потом подключите его с помощью AddHeadScript().

Тоже самое касается и стилей. Если вам необходимо подключить стили, вынесите их в отдельный файл, а потом используйте SetAdditionalCSS().

В итоге получится нечто похожее:

Правильное подключение скриптов и стилей Битрикс

. или, если вы используете D7, так:

Правильное подключение скриптов и стилей Bitrix D7

4. Неверное подключение скриптов и стилей компонента

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

Допустим, для главной страницы сайта необходимо разработать слайдер с баннерами. Ок. Что может быть проще.

И Вы правильно подумали, что переносить стили (и скрипты) в основной шаблон сайта (/local/templates/[ваш сайт]/template_styles.css и /local/templats/[ваш сайт]/script.js) не стоит — иначе они будут подключаться на каждой странице.

Но многие разработчики просто помещают css и js в файл template.php шаблона компонента и на этом успокаиваются. Правильным же подходом будет создание файлов script.js и style.css в папке шаблона. Они подключатся автоматически и избавят от головной боли при разработке.

5. Отключение кеширования

Кеширование позволяет значительно снизить нагрузку на БД. Это более остро чувствуется при росте аудитории (и соответственно запросов к БД).

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

Читайте так же:
Битрикс не входит в админку

Мой совет: перед сдачей проекта прогнать сайт через монитор производительности. Он покажет ошибки в разработке и вам не придется искать проблемные компоненты вручную.

6. Вложенные циклы при получении элементов инфоблока

Очень часто при разработке нового компонента возникает необходимость получать данные из двух (или больше) связанных Инфоблоков.

Давайте рассмотрим пример: нужно получить список всех деталей, подходящих ко моделям автомобилей.

Код упрощен для простоты восприятия, матерые разработчики найдут в нем сразу несколько ошибок;)

Суть в чем: чем больше на сайте будет моделей, тем больше будет SQLзапросов с получением данных о запчастях. Более правильным был бы такой вариант:

В этом случае, вне зависимости от количества элементов инфоблока, будет всего 2 SQL запроса: получение моделей и получение деталей. А уже дальше в цикле должна быть проведена работа по распределению деталей на соответственные модели автомобилей.

Вообще, подобных ошибок очень много:

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

Перечислять все ушло бы очень много времени.

7. Бездумная разработка компонентов Bitrix

Не самым лучшим решением будет разрабатывать сайт целиком на самописных компонентах. Мотивация может быть разная: «Стандартный компонент делает слишком мало», «Стандартный компонент делает слишком много», «Шаблон слишком массивный, а в данных не разобраться», «Работает не так как я хочу», «Работает так как я хочу, но не очень».

Почему не стоит делать это? По целому ряду причин:

  • От ошибок никто не застрахован. Но в случае стандартных компонентов можно расcчитывать, что их рано или поздно исправят, а ваша (если вы разработчик) ответственность закончится после сдачи проекта.
  • Компоненты Битриксв некоторых случаях сложны и запутаны. Сделано это ради гибкости. Уверен, если делать упор на универсальность, в конечном итоге компонент получится похожим на стандартный (а то и будет еще запутаннее:)).
  • Если в будущем изменится структура данных, логика работы, а бОльшая часть сайта была написана сторонними разработчиками, поддержка проекта превратится в настоящий ад с постоянным переписыванием десятка компонентов.

В общем, прежде чем приступить к созданию очередного компонента, задайте себе вопрос: «А не возникнет ли проблем у Заказчика через год или два?».

Вместо заключения

Конечно, это лишь малая часть тех ужасов, с которыми приходится сталкиваться, получая очередной проект на поддержку. Я постарался собрать самые часто встречаемые.

Дмитрий Языков

Дмитрий Языков

Помогаю развивать интернет-проекты. Пишу про веб-разработку, маркетинг и дизайн.

Настройка корректной отправки почты в Битрикс24

По умолчанию, после развертывания коробки Битрикс24 отправка почты (или почтовых уведомлений) не работает или письма постоянно попадают в СПАМ. Мы рассмотрим комплекс мероприятий, которые помогут решить данную проблему полностью или в большей степени. Работать будем с системой на базе Linux.

Настройка отправителя и сервера отправки

Независимо от настроенного нами отправителя в веб-интерфейсе, битрикс будет отправлять письма с заголовком envelope-from, значением которого будет общий отправитель, настроенный в системе. Также нам нужно выбрать сервер, через который будет отправляться почта.

Для этого в стартовом меню битрикс (когда заходим под пользователем root) выбираем настройку Configure pool sites:

Available actions:
1. Manage servers in the pool
2. Configure localhost settings
3. Configure MySQL service for the pool
4. Configure Memcached service for the pool
5. Configure pool monitoring
6. Configure pool sites
7. Configure Sphinx service for the pool
8. Manage pool web servers
9. Configure Push/RTC service for the pool
10. Background pool tasks
0. Exit.

Enter your choice: 6

После выбираем пункт Change a site's email settings:

1. Create a site
2. Delete a site
3. Change a site's cron settings
4. Change a site's email settings
5. Change a site's https settings
6. Change a site's backup settings
7. Configure NTLM auth for sites
8. Configure optional services (xmppd|smtpd) for a site
9. Configure nginx to use composite cache
10. Configure additional site's options
0. Previous screen or exit

Читайте так же:
База данных oracle это

Enter your choice: 4

Выбираем сайт для настройки (если он один, то default):

Manage email settings
0. Previous screen or exit

Enter site name (default) or 0 to exit: default

Отвечаем на вопросы мастера. В нашем примере мы рассмотрим настройку отправки с локального сервера, поэтому задаем адрес 127.0.0.1. В поле From написать адрес общего отправителя. Также мы отказываемся от использования ЕДЫ и аутентификации. В итоге, мы получим что-то на подобие:

Если нам необходимо отправлять письма с публичных почтовых систем (Яндекс, mail.ru, GMAIL и так далее), необходимо указать их серверы smtp. Если в нашей системе есть пользователи разных почтовых систем, необходимо настроить отправку почты через локальный сервер, который будет с помощью транспортных правил пересылать сообщения через соответствующие системы. Пример настройки postfix для отправки через Яндекс.

Наши настройки сохраняются в файле:

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

Настройка сервера

Если на первом шаге мы выбрали отправку писем через локальный сервер, настроим его для корректного формирования и отправки писем. Будем использовать локальный MTA на базе Postfix.

Наш сервер должен иметь правильное имя — его можно задать командой:

hostnamectl set-hostname mail.dmosk.ru

* заданное имя должно разрешаться через DNS в IP-адрес нашего сервера.

Postfix может быть не установлен в нашей системе, поэтому сначала выполним его инсталляцию.

а) на сервере CentOS:

yum install postfix cyrus-sasl-plain

б) на сервере Ubuntu:

apt-get install postfix cyrus-imapd cyrus-clients cyrus-doc cyrus-admin sasl2-bin

После установки разрешаем автозапуск Postfix:

systemctl enable postfix —now

Открываем конфигурационный файл нашего mta:

Находим не закомментированную строку:

* значение для inet_interfaces может быть не только localhost.

. и меняем ее значение на:

* однако, если мы используем IPv6, то менять значение не нужно.

Задаем в качестве значения для myorigin наш домен, с которого будем отправлять письма:

* где dmosk.ru — мой домен, который я буду использовать в инструкции в качестве примера.

Задаем максимальный размер отправляемого сообщения:

* в данном примере мы задали лимит в 50 Мб.

Указываем серверу передавать сообщения по зашифрованному каналу:

После внесения настроек перезапускаем postfix для их применения:

systemctl restart postfix

Теперь создаем файл с настройками для PHP, который переопределяет некоторые настройки по умолчанию:

Добавляем строку с опцией sendmail_path

mail.add_x_header = Off
expose_php = Off
sendmail_path = /usr/sbin/sendmail -t -i

  • add_x_header — позволяет добавлять при отправке письма с помощью функции mail() заголовок X-PHP-Originating-Script;
  • expose_php — идентифицирует отправляемое письмо, что оно было сформировано с помощью PHP. Так как присутствие в письме данной информации может привести к негативной реакции со стороны антиспам систем, отключаем ее вывод.
  • sendmail_path — путь до исполняемого файла mta.

Перезапускаем веб-сервер обработки php:

systemctl restart httpd

Проверяем, что у нас в системе в качестве MTA по умолчанию выбран Postfix. Вводим команду:

update-alternatives —config mta

Если мы увидим, что у нас не используется postfix (напротив него должен быть +), то меняем значение:

В нашем примере, выбираем 2:

Enter to keep the current selection[+], or type selection number: 2

Настройка домена

Для того, чтобы письма проходили проверки на СПАМ, необходимо убедиться в корректной настройке DNS для нашего домена, от которого выполняется отправка.

A-запись

Ранее мы задавали имя серверу. На NS нам нужно добавить соответствующую запись типа А, например:

mail.dmosk.ru A 90.90.90.90

Определяет, с каких серверов можно отправлять почту для нашего домена.

v=spf1 +a +mx ip4:93.93.93.93 -all

* в данном примере мы разрешаем отправку с сервера с IP адресов домена, для сервера MX и с IP 93.93.93.93. Остальные письма должны восприниматься как нелегитимные.

Данная запись включает в себя ключ для дешифровки специального заголовка, отправляемого с письмом. Если проверяющая сторона сможет это сделать, значит письмо отправил владелец домена.

Читайте так же:
Бесплатные видеохостинги для загрузки видео

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

DMARC

Определяет, что делать с письмами, которые не прошли проверку DKIM и SPF.

v=DMARC1; p=quarantine; sp=none; pct=100; fo=0; rua=mailto:postmaster@dmosk.ru

* данная политика укажет, что почту, которая не прошла проверку, необходимо поместить в карантин.

Это обратная запись для внешнего IP-адеса, на котором работает почтовый сервер. Она должна совпадать с именем, которым представляется почтовый сервер (как правило, это имя сервера или его hostname).

Прописывается у провайдера, который предоставляет Интернет (или поставщик МЗЫ)ю

93.93.93.95.in-addr.arpa name = mail.dmosk.ru

* указываем, что имя узла для IP-адреса 95.93.93.93 должно быть mail.dmosk.ru.

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

MX preference = 10, mail exchanger = mail1.dmosk.ru
MX preference = 20, mail exchanger = mail2.dmosk.ru

* в данном примере указано 2 почтовых сервера для домена dmosk.ru. Более приоритетный mail1.dmosk.ru.

Настройка cron

Чтобы письма отправлялись, нужно, чтобы работал cron для битрикс24. Открываем конфигурационный файл:

Проверяем, чтобы была строка:

Открываем на редактирование crontab (для пользователя bitrix):

crontab -e -u bitrix

* * * * * /usr/bin/php -f /home/bitrix/www/bitrix/modules/main/tools/cron_events.php

* в данном примере мы запускаем на исполнение скрипт /home/bitrix/www/bitrix/modules/main/tools/cron_events.php каждую минуту.

Тестовая отправка письма из командной PHP-строки

Проверим, что мы настроили наш сервер для отправки корректно. Переходим в административную консоль Битрикс24 — ИнструментыКомандная PHP-строка.

$headers = "From: info@<$_SERVER['SERVER_NAME']>rn" .
"Reply-To: test@<$_SERVER['SERVER_NAME']>rn" .
"X-Mailer: PHP/" . phpversion();
if(mail("master@dmosk.ru", "Письмо для проверки", "Тестовое сообщение", $headers) ) <
echo "Сообщение отправлено!";
> else <
echo "Ошибка! Проверьте настройки почтового сервера и его лог (/var/log/maillog)";
>

* где master@dmosk.ru — адрес почтового ящика, на который будет отправлено тестовое сообщение.

Нажимаем кнопку Выполнить и подтверждаем во всплывающем окне наши намерения запустить на исполнение скрипт. Мы должны получить ответ: «Сообщение отправлено!». В противном случае, изучаем логи.

Подключение ящика

Для подключения к ящику заходим в битрикс 24 под пользователем. Слева переходим в Почта:

Переходим к работе с почтой в битрикс 24

Среди поставщиков услуг выбираем подходящий вариант или IMAP:

Переходим к настройкам IMAP

Заполняем поля для подключения (остальные галочки можно выставить по желанию):

Заполняем поля для подключения к почтовому ящику

* точные настройки необходимо уточнить у администратора почтового сервера. Также их можно посмотреть на странице инструкции соответствующего поставщика.

Отмечаем галочками папки для синхронизации:

Выбираем почтовые папки для синхронизации

Готово. Можно отправлять письма из битрикс.

Проверка и анализ

Существуют различные онлайн сервисы, где мы можем проверить корректность настройки нашего сервера и DNS:

1. Анализ письма. Данные сервисы предлагают отправить письмо на определенный адрес, после будет выполнен онлайн анализ.

2. Наличие почтового сервера в черных списках. Позволяет узнать, не был ли добавлен наш сервер в черные списки. Если сервер туда попал, то необходимо найти специальную страницу для удаления из блока и создать заявку онлайн.

3. Проверка репутации домена. Позволяет понять, правильно ли настроен наш домен.

Также, для решения проблем на самом сервере необходимо использовать лог почты. Его можно смотреть командой:

tail -f /var/log/maillog

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

Отправка через разные почтовые системы

На нашем сервере Битрикс24 могут быть заведены пользователя, чья почта может находится на различных почтовых хостингах, например, mail.ru, Яндекс, GMAIL и так далее. Для отправки почты таким образом, мы должны сделать 2 вещи:

  1. Настроить правило пересылки почты через другие системы.
  2. Пропускать отправку писем через msmtp.

Рассмотрим оба шага подробнее.

Пересылка почты

Пересылка настраивается с помощью правил почтового сервера postfix. Для этого настраивается опция sender_dependent_relayhost_maps.

Подробнее, на примере отправки писем через Яндекс, описан процесс настройки в инструкции Отправка почты от Postfix через почтовый сервер Яндекса.

Использование msmtp

Снова открываем файл z_bx_custom_settings.ini:

Комментируем опцию sendmail_path и добавляем новую строку:

.
#sendmail_path = /usr/sbin/sendmail -t -i
sendmail_path = /usr/bin/msmtp -t -i —read-envelope-from

* обратите внимание, что теперь мы отправляем письма через приложение /usr/bin/msmtp. Также мы добавляем опцию —read-envelope-from, которая будет в качестве отправителя подставлять содержимое заголовка reply-to.

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector