bitrix дополнительный параметр для передачи функции mail
Как включить отправку почты на 4.2 CentOS?
SMTP server name:
SMTP port (press ENTER to leave default value, SMTP port = 25):
Default sender address:
Is SMTP authorization required? (y/n):
Is TLS required? (y/n):
Что в них писать? Я хочу, чтобы вся почта отсылалась не через внешний SMTP а через сервер, на котором стоит виртуальная машина.
Вот нашел еще, что метод отправки задается в файле /etc/php.d/bitrixenv.ini
И кто-то писал, что можно поменять
только я не понимаю что это даст? Можете рассказать?
Мы решили проблему следующим образом
в файле /etc/php.d/bitrixenv.ini поменять
и перезапустить сервер
| Цитата |
|---|
| Денис Диденко пишет: способ хороший, только надо добавить юниксового пользователя bitrix в trusted_users, делается это примерно так, в секции main configuration прописываем trusted_users = bitri |
а где находится эта секция main? не понял про какой конфигурационный файл мы говорим)
и вопрос в тему: в процессах висит вот такое:
По порядку, как это делаю я, наверняка можно проще, но уж как привык.
email@www.ru меняем на нужный емейл с которого должна уходить почта
Затем идем в конфиг exim /etc/exim/exim.conf
находим строку hostlist relay_from_hosts = 127.0.0.1
сразу после нее дописываем trusted_users = bitrix
Затем перезагружаем apache и exim
/etc/init.d/httpd restart
/etc/init.d/exim restart
и можно проверять хождение почты.
Внимание, для нормальной работы почты в такой конфигурации как минимум необходимо прописать PTR запись, попросите хостера, как правило не отказывают.
Как правильно настроить msmtp для нескольких сайтов
На Bitrix Env 4.2 крутятся две редакции битрикс (Стандарт и Бизнес) и на каждой редакции крутится по два сайта.
Почта успешно уходит через msmtp с редакции Бизнес (и системные сообщения и все остальные),
с почтой на сайтах редакции Стандарт есть проблемы:
Уж не знаю в правильном ли направлении ищу проблему, но в etc/cron.d
добавил файл с произвольным названием
в него добавил строчку
В настройках msmtp (файл /home/bitrix/.msmtprc) по умолчанию все шлется через аккаунт default
добавление другого аккаунта email2@site2.ru ни к чему не привело
все равно все шлется через аккаунт default
————
попробовал согласно параметрам msmtp http://msmtp.sourceforge.net/doc/msmtp.html
указать в php.ini конкретный аргумент для msmtp, а именно прописал строку:
но все равно шлет через дефолтный аккаунт,
У вас с одного сайта письма уходят, а с другого не уходят. Причем здесь msmtp и настройки сервера?
На вашем втором сайте, скорее всего, включена отправка почты на агентах, уберите строчку define(«BX_CRONTAB_SUPPORT», true); и отправляйте на агентах.
Добавка в конфиг msmtp еще одного аккаунта, например:
позволило слать почту через msmtp с нескольких сайтов и с разных почтовых ящиков
в файле /home/bitrix/.msmtprc
сделал записи
account default
logfile /var/log/msmtp.log
host smtp.gmail.com
port 587
from 1@gmail.com
keepbcc on
auth on
user 1@gmail.com
password 1111
tls on
tls_certcheck off
account mailbox2
logfile /var/log/msmtp.log
host smtp.gmail.com
port 587
from 2@gmail.com
keepbcc on
auth on
user 2@gmail.com
password 2222
tls on
tls_certcheck off
to Дмитрий Данилов
Спасибо, этот вариант работает отлично!
| Цитата |
|---|
| Андрей Дьякон написал: to Дмитрий Данилов Спасибо, этот вариант работает отлично! |
Если раньше это работало, то сейчас нет. При отправки с любой почты Битрикс будет подставлять почту последнюю в списке.
Решили это следующим образом:
1. Настроили аккаунты таким образом:
2. Добавили функцию custom_mail(для удобства разбил на несколько функций) в init.php:
В итоге если функция находит почтовый ящик в аккаунтах, то отправляет с него, если не находит, то отправка идет с ящика по умолчанию, а поле From заголовка письма подменяется почтой пользователя в Битрикс.
| Цитата |
|---|
| Андрей Дьякон написал: to Дмитрий Данилов Спасибо, этот вариант работает отлично! |
Если раньше это работало, то сейчас нет. При отправки с любой почты Битрикс будет подставлять почту последнюю в списке.
Решили это следующим образом:
1. Настроили аккаунты таким образом:
2. Добавили функцию custom_mail(для удобства разбил на несколько функций) в init.php:
В итоге если функция находит почтовый ящик в аккаунтах, то отправляет с него, если не находит, то отправка идет с ящика по умолчанию, а поле From заголовка письма подменяется почтой пользователя в Битрикс.
| Цитата |
|---|
| Андрей Дьякон написал: to Дмитрий Данилов Спасибо, этот вариант работает отлично! |
Если раньше это работало, то сейчас нет. При отправки с любой почты Битрикс будет подставлять почту последнюю в списке.
Решили это следующим образом:
1. Настроили аккаунты таким образом:
2. Добавили функцию custom_mail(для удобства разбил на несколько функций) в init.php:
В итоге если функция находит почтовый ящик в аккаунтах, то отправляет с него, если не находит, то отправка идет с ящика по умолчанию, а поле From заголовка письма подменяется почтой пользователя в Битрикс.
| Цитата |
|---|
| Дмитрий Б написал: Подскажите, а что нужно чтобы научить коробку слать письма с одного stmp сервера (я.коннект), но в заголовки from подставлять почты пользователей? облако так умеет |
| Цитата |
|---|
| Vladimir Kalinichenko написал: Есть свой сервер, подключаюсь по IMAP у каждого пользователя, все равно отправка через 1 основной ящик.Как можно настроить, что бы отправлял каждый пользователь со своего ящика?(Настроено 100 ящиков, отправка с одного) |
Настраивайте на сервере с битрикс например ssmtp, подключайтесь к своему серверу и рассылайте письма со всех адресов. Мы сейчас так делаем, все общение менеджеров, автоматизация рассылки по 30-40к адресов, проблем со спамом нет.
У меня такая же ситуация! Прошу помочь!
Вроде всех интересующихся добавил. Объясню, как решил эту проблему у себя.
Решение только для BitrixEnv сервера.
2.
Идем в папку /etc/httpd/bx/custom (командой: cd /etc/httpd/bx/custom)
если файла z_bx_custom.conf нету, то создаем (touch z_bx_custom.conf)
в файл, в конец, добавляем настройки для ваших сайтов, например:
Редактировать файл можно командой vi или nano (например: nano z_bx_custom.conf)
Это укажет php-скриптам, что если они в этой директории, то использовать настройки почты аккаунта site1.ru (или другого)
3.
В файле /home/bitrix/.msmtprc добавляем настройки аккаунтов (можно через меню bitrixenv или вручную: vi /home/bitrix/.msmtprc)
Например пишем настройки такие:
В принципе, этого уже будет достаточно, чтобы сайты на одном сервере отправляли почту с нужных аккаунтов почты, но есть некоторый нюанс, когда почта отправляется с php разработок, где не используют явную папку и тогда настройка для apache не подхватывается. Тут может помочь шаг 4.
Настройка отправки почты в Битриксе через SMTP протокол
При отправке писем штатными средства Битрикс, через стандартный PHP механизм — функцию mail(), часто возникают проблемы, такие как попадаение писем в спам или вовсе почта не отправляется. Отправка писем через SMTP поможет решить эту проблему.
Преимущества отправки почты через SMTP
SMTP (англ. Simple Mail Transfer Protocol) – это протокол передачи почты. Он обеспечивает простую передачу почтовых отправлений. Его основная задача — отправка и контроль исходящих сообщений.
Преимущества использования SMTP-сервера:
Подключение и настройка SMTP в Битриксе
По-умолчанию, Битрикс не поддерживаем SMTP протокол. Для работы с ним необходимо установить соответствующий SMTP модуль из Маркетплейса.
Есть четыре бесплатных модуля SMTP и два платных. По отзывам из бесплатных наиболее устойчивый и работоспособный — модуль SMTP от студии ВебПростор.
Установка модуля «Отправка почты через SMTP»
Для установки модуля SMTP требуется наличие модуля «Ядро для модулей» (будет предложено добавить в процессе установки) и не должно быть ошибок при работе с сокетами (Настройки/Инструменты/Проверка системы).
Настройка модуля «Отправка почты через SMTP»
Модуль гарантированно взаимодействует с сервисами:
Укажите соединения для выбранного сервиса в настройках SMTP:
Укажите настройки для авторизации, если требуется:
Также вы можете указать настройки для ручной отправки писем:
Не забудьте включить модуль на вкладке «Общие настройки»:
Вы можете указать настройки для автоматического создания или удаления файла init.php для сайтов.
Для диагностирования возникающих проблем или отслеживания логов операций, можете включить логирование и указать дополнительные настройки.
Логи следует периодически очищать, чтобы не перегружать таблицу. По достижении 1000 записей в логах, система выдаст уведомление о необходимости очистки таблицы.
Проверка отправки писем через модуль «Отправка почты через SMTP»
Перед включением модуля, обязательно проверьте отправку писем вручную.
Если есть ошибки, система уведомит об этом:
Ошибки можно посмотреть в журнале операций, если активированы соответствующие настройки:
Также обязательно проверьте автоматическое отправление писем. Например, путем оповещения своей учетной записи в карточке пользователя.
На этом установка и настройка модуля SMTP закончена.
bxmail
Проверяет существование функции custom_mail и если такая функция есть, то bxmail вызывает ее со всеми параметрами и возвращает ее результат.
Иначе вызывается встроенная php функция mail.
Данная функция вызывается из главного модуля при отправке почтовых событий, а так же из модуля подписки при отправке выпусков. Это позволяет переопределить обработчик всех писем отправляемых БУС.
Параметры функции
| Параметр | Описание |
|---|---|
| to | Получатель. |
| subject | Заголовок письма. |
| message | Тело письма. |
| additional_headers | Дополнительные заголовки. |
| additional_parameters | Дополнительные параметры для php функции mail(). |
Возвращаемое значение
Смотрите также
Пользовательские комментарии
Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.
Для этого нужно всего лишь авторизоваться на сайте
Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.
Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
Работа с электронной почтой на 1С-Битрикс
Подробно рассказываем о способах отправки писем на электронную почту, нюансах настроек и исправлении ошибок. Вы узнаете, как проверить качество доставки сообщений и улучшить их доставку.
Подписаться на
рассылку
Отправляем полезные письма о бизнесе, сайтах и хостинге каждые 2 недели
1. Как отправить письма из 1С-Битрикс
Многие действия на сайте, работающем на 1С-Битрикс, сопровождаются отправкой почтовых уведомлений. При этом могут возникнуть проблемы с доставкой писем – попадание в спам или блокировка отправки сообщений.
Отправить сообщение из 1С-Битрикс можно с помощью скрипта php mail(); и из ядра 1С-Битрикс.
Отправление писем с php mail();
PHP-функция передает команду приложению sendmail, которое отправляет электронное сообщение. Для его отправки используется скрипт mail().
Отправка сообщения с php mail(); происходит через административную панель вашего сайта. Для этого перейдите в Настройки (1) → Инструменты (2) → Командная строка PHP (3).
Для отправки письма нужно заполнить обязательные параметры – e-mail, заголовок письма и текст сообщения. В поле командной PHP-строки введите код: mail(«to», «subject», «text»);.
«to» на электронную почту получателя;
«subject» – заголовок вашего письма;
«text» – текст вашего письма по строкам.
Отправьте письмо адресату с помощью кнопки «Выполнить».
Функция mail использует локальный почтовый сервер. С ним связаны ограничения: он может отсутствовать, быть прописан в черных списках или негативно влиять на производительность.
Кроме этого, антиспамовые фильтры не одобряют отправление сообщений функцией php mail();, поэтому такие письма обладают большей вероятностью попадания в спам.
Даже если такое сообщение доходит до адресата, то оно не вызывает доверия получателя, так как:
Нет подписи DKIM. Подтверждает подлинность отправителя с помощью ключа DKIM. Подпись предотвращает замену письма злоумышленниками.
Нет SPF-записи. Защищает от писем с поддельными адресами отправителей из вашего домена. Для ее настройки создается TXT-запись. В ней перечисляют серверы, которые могут отправлять письма от имени домена, и механизм обработки писем, отправленных от других серверов.
Нет шифрования. Обеспечивает конфиденциальность передачи данных. Для настройки нужно установить SSL-сертификат или TLS-сертификат.
Результат отправки письма с php mail();
Безопасность письма обеспечена только стандартным шифрованием, которое установлено автоматически между сервером Reddock и сервером почтового сервиса.
Подписей отправитель письма не имеет. Значит, такое письмо могло быть отправлено и злоумышленниками.
Отправка на Яндекс почту
Отправление писем из ядра 1С-Битрикс
Для отправки почтовых сообщений из ядра 1С-Битрикс нужно настроить почтовую систему. Для этого создать:
тип почтового события,
Тип почтового события и почтовый шаблон можно настроить в административной панели: Настройки (1) → Настройки продукта (2) → Почтовые и СМС события (3). В последнем выбрать необходимое действие.
Само почтовое событие отправляется функцией send. С помощью нее происходит отправка письма. Для этого нужно перейти в Настройки (1) → Инструменты (2) → Командная PHP-строка (3). Введем в поле код из примера документации 1С-Битрикс для разработчиков. В нем замените e-mail получателя на адрес вашей электронной почты и нажмите «Выполнить».
Результат отправки письма из ядра 1С-Битрикс
Письмо не пришло ни на Яндекс.Почту, ни на Gmai, поэтому проверим его статус. Для этого перейдите в панели администрирования в Настройки (1) → Производительность (2) → Таблицы (3) и выберите таблицу «b_event» (4).
В таблице находятся данные о всех отправленных сообщениях, их содержании и доставке. Наше письмо не было доставлено.
Проверка отправки писем с помощью форм на сайте
Используйте форму на сайте, после заполнения которой автоматически приходит уведомление на почту. Например:
форма обратной связи,
регистрация на сайте,
подписка на email-рассылку,
покупка товара и др.
При успешном заполнении формы на указанную почту будет отправлено уведомление об отправке сообщения, регистрации, подтверждении заказа или подписки.
Результат отправки с помощью форм
Мы проверили качество отправки писем с помощью mail-tester. Для этого использовали форму подписки на email-рассылку, вставили предлагаемый mail-tester почтовый адрес и получили такой результат:
Дополнительно проверили доставку сообщений в Gmail и Яндекс.Почту. Результат – попадание в папку «Спам».
2. Как проверить качество доставки сообщений
Рекомендуем анализировать качество доставки сообщений с помощью спам-тестеров. Мы используем mail-tester, потому что он удобен в применении и имеет русский интерфейс.
Использовать mail-tester просто. На странице mail-tester.com появляется случайный адрес электронной почты. На нее нужно отправить письмо с проверяемого почтового ящика.
Важно: mail-tester позволяет бесплатно проверить письма три раза за одни сутки.
Сервис выявляет спам, проверяет содержание и форматирование письма, подлинность сервера, черные списки и нерабочие ссылки. По всем параметрам предлагает рекомендации по исправлению.
Для успешной доставки писем оценка должна быть минимум 8 баллов.
3. Как настроить почтовый сервер
Для отправки сообщений необходимо настроить почтовый сервер: локальный и внешний.
Локальный почтовый сервер
Для его настройки в личном кабинете услуги перейдите в Почта (1) → Почтовые домены (2), выберите почтовый домен (3) и нажмите на «Изменить» (4).
В открывшейся вкладке выполните следующие действия для повышения качества писем:
Включите Greylisting. Greylisting – это автоматический фильтр входящего спама на уровне протокола SMTP. Он блокирует спам с помощью временной задержки входящих сообщений.
Включите SpamAssassin. SpamAssassin – эффективное средство для фильтрации спама, основанное на взаимодействии ключевых компонентов: оценочного сервиса, транспортного агента и базы шаблонов писем.
Включите проверку на вирусы. Clam AntiVirus – пакет антивирусного ПО. Он предназначен для проверки файлов, прикрепленных к сообщениям.
Включите DKIM для домена. Технология DomainKeys Identified Mail (DKIM) объединяет несколько существующих методов антифишинга и антиспама с целью повышения качества классификации и идентификации легитимной электронной почты.
Включите DMARC для домена. DMARC предназначен для снижения количества спамовых и фишинговых электронных писем.
Активируйте защищенное соединение (SSL-сертификат).
Внешний почтовый сервер
Существует несколько вариантов подключения внешнего почтового сервера. Лучший вариант – отправка почты с помощью SMTP-модуля.
Подключение SMTP-модуля
Модуль «Отправка электронной почты через SMTP» решает эту проблему применением SMTP-серверов.
Для настройки необходимо установить модуль от Веб студии Руби из Маркетплейса 1С-Битрикс.
2. В открывшейся странице модуля нажмите на кнопку «Установить» (1);
3. В поле введите адрес вашего сайта или портала (2) и нажмите на кнопку «Установить» (3).
Перейдите в Marketplace (1) → Установленные решения (2) и установите модуль (3-4).
После успешной установки модуля появится сообщение:
В панели управления Битрикс у вас появится новый пункт. Перейдите в Настройки (1) → Настройки продукта (2) → Настройки модулей (3).
В открывшейся вкладке укажите параметры вашего SMTP-сервера, отметьте галочки для «Модуль активен», «Вести журнал», «Проверять формат адреса получателя» и «Сохранять письмо при ошибке».
Далее необходимо выбрать типовые профили (1) в соответствии с вашей почтой: Яндекс, Google или Mail.Ru. Нажмите на кнопку «Применить» (2).
Выполнив эти действия, почтовые сообщения будут отправляться через SMTP-сервер.
Дополнительные SMTP-аккаунты можно добавить с помощью опции «Добавить дополнительный E-mail SMTP аккаунт». Укажите исходящий адрес и в новой вкладке сделайте настройки для этого адреса.
Важно! Для подключения модуля необходимо добавить строку
в файл /bitrix/php_interface/init.php или /local/php_interface/init.php.
Если такого файла нет, его необходимо создать.
4. Как избежать попадания писем в спам
Рассказываем, что предпринять для доставления писем в папку «Входящие».
Отправление писем через модули 1С-Битрикс
В административной панели сайта есть возможность отправки почты двумя способами: с помощью рассылки и email-маркетинга.
Рассылка
Для отправки письма перейдите в Сервисы (1) → Рассылки (2) → Выпуски (3). Создаем рассылку (4), в поле электронной почты получателя вставьте новый адрес из mail-tester. Отправка возможна только на один e-mail.
Статус письма обновляется на «Отправлено с ошибками».
Для исправления ошибок отправьте письмо повторно. Нажмите на тему письма и повторите отправку для ошибочных.
Результат отправки письма в mail-tester. Отправление писем блокируется.
Отправление через Email-маркетинг
Для отправки письма перейдите в Маркетинг (1) → Email-маркетинг (2) → Старт (3).
Создайте новую рассылку.
Выберите первый шаблон. В графе «Получатели тестовой отправки» введите адрес, предложенный mail-tester, и отправьте на него письмо.
Результат стал лучше, однако этой оценки недостаточно для качественной доставки писем.
Отправление писем с доменной почты
Используйте сторонние приложения для отправки электронной почты с использованием доменной почты. Адрес электронной почты с доменом вашего сайта наиболее привлекателен, повышает доверие и лояльность клиентов.
Существует несколько специализированных сервисов по созданию почты: Яндекс, Google, Mail.Ru и др.
Создать почту можно и на хостинге, но по сравнению с Яндекс, Google, Mail.Ru она имеет ряд недостатков:
максимальное количество отправляемых писем – 300 в час;
максимальный размер почтового сообщения – 25 000 КБ;
почтовый сервис на хостинге имеет стандартную панель, в ней нет дополнительных инструментов и интеграций;
при переходе к другому хостинг-провайдеру, вся ваша почта останется на хостинге и вам придется переносить ее самостоятельно.
Однако и специализированные сервисы имеют слабые стороны:
G Suite (от Google) – имеет только 14-дневный бесплатный период использования.
Поэтому рекомендуем использовать сервис Яндекс.Почта. Для создания почты на Яндекс следуйте нашей инструкции.
После настройки протестируйте доставку повторно. Какой результат получился:







































