По умолчанию в BitrixEnv и BitrixVM используется msmtp для отправки почтовых сообщений.
Преимуществом данного решения является простота его настройки. К недостатком можно отнести медленную отправку почтовых сообщений через внешние сервисы (Google, Yandex).
В большинстве случаев это не приводит к каким либо проблемам, так как почтовые события отрабатывают из под крона, но в ряде случаев может создать проблему. Например если почтовые события исполняются на хите (задан параметр немедленная доставка), или разработчик напрямую использует функцию mail().
Рассмотрим настройку отправки почтовых сообщений postfix-ом через Яндекс:
1. устанавливаем дополнительные пакеты
2. добавляем в файл /etc/postfix/main.cf
3. в /etc/postfix/mailpasswd указываем логин и пароль
4. в /etc/postfix/sender_relay указываем привязку доменов и конкретных отправителей к внешним службам
5. в /etc/postfix/canonical добавляем для домена указание через какой аккаунт отправлять
6. в /etc/postfix/generic добавляем отправку почты админу
и выполняем команду postmap для /etc/postfix/generic, /etc/postfix/canonical, /etc/postfix/sender_relay, /etc/postfix/mailpasswd
7. изменяем настройки в php.ini
8. Запускаем все необходимые службы
Скорость отправки сообщений php скриптами значительно возврастет, а всю работу по доставки писем до внешнего сервера возьмет на себя postfix. При этом, нам не надо настраивать полноценный почтовый сервер.
Преимуществом данного решения является простота его настройки. К недостатком можно отнести медленную отправку почтовых сообщений через внешние сервисы (Google, Yandex).
В большинстве случаев это не приводит к каким либо проблемам, так как почтовые события отрабатывают из под крона, но в ряде случаев может создать проблему. Например если почтовые события исполняются на хите (задан параметр немедленная доставка), или разработчик напрямую использует функцию mail().
Рассмотрим настройку отправки почтовых сообщений postfix-ом через Яндекс:
1. устанавливаем дополнительные пакеты
yum install cyrus-sasl-plain |
2. добавляем в файл /etc/postfix/main.cf
smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/mailpasswd smtp_sasl_security_options = noanonymous smtp_sasl_type = cyrus smtp_sasl_mechanism_filter = login smtp_sender_dependent_authentification = yes sender_dependent_relayhost_maps = hash:/etc/postfix/sender_relay sender_canonical_maps = hash:/etc/postfix/canonical smtp_generic_maps = hash:/etc/postfix/generic |
3. в /etc/postfix/mailpasswd указываем логин и пароль
[smtp.yandex.ru] www@some.ru:password |
4. в /etc/postfix/sender_relay указываем привязку доменов и конкретных отправителей к внешним службам
@some.ru [smtp.yandex.ru] www@some.ru [smtp.yandex.ru] |
5. в /etc/postfix/canonical добавляем для домена указание через какой аккаунт отправлять
@some.ru www@some.ru |
6. в /etc/postfix/generic добавляем отправку почты админу
root@localhost admin@mail.xx bitrix@localhost admin@mail.xx |
7. изменяем настройки в php.ini
sendmail_path = sendmail -t -i -fwww@some.ru ;bitrix-env |
8. Запускаем все необходимые службы
chkconfig saslauthd on service saslauthd restart chkconfig postfix on service postfix restart service zend-server restart |
Скорость отправки сообщений php скриптами значительно возврастет, а всю работу по доставки писем до внешнего сервера возьмет на себя postfix. При этом, нам не надо настраивать полноценный почтовый сервер.