vip6,Добрый день. Не могли бы подробней рассказать куда и в каком виде вставлять Вашу функцию для почты. У меня BitrixVM.CRM, и я никак не могу заставить ее слать письма с одного сайта но с разных почтовых ящиков. При вставке Вашей функции в /home/bitrix/www/bitrix/php_interface/init.php ровным счетом ничего не происходит, письма не улетают, даже логов нет. Не могу понять где и на чем я споткнулся. Заранее спасибо!
Андрей Дьякон написал: to Дмитрий Данилов Спасибо, этот вариант работает отлично!
Так же добавлю, если необходима рассылка с одного сайта, сразу с нескольких почтовых аккаунтов, то их по аналогии можно перечислить, в той же строке, в главном модуле, через запятую: --account=mailbox1 --from= info1@site.ru , --account=mailbox2 --from= info2@site.ru , --account=mailbox3 --from= info3@site.ru
Если раньше это работало, то сейчас нет. При отправки с любой почты Битрикс будет подставлять почту последнюю в списке.
Решили это следующим образом:
1. Настроили аккаунты таким образом:
/home/bitrix/.msmtprc
Код
# Defaults for all accounts
defaults
keepbcc on
auth on
tls on
tls_starttls off
tls_certcheck off
port 465
host smtp.yandex.ru
logfile /home/bitrix/msmtp_default.log
account defaultsiteru
from default @site .ru
user default @site .ru
password ***
account acc1siteru
logfile /home/bitrix/msmtp_acc1_site_ru.log
from acc1 @site .ru
user acc1 @site .ru
password ***
account acc2siteru
logfile /home/bitrix/msmtp_acc2_site_ru.log
from acc2 @site .ru
user acc2 @site .ru
password ***
# Set a default account
account default : defaultsiteru
2. Добавили функцию custom_mail(для удобства разбил на несколько функций) в init.php:
В итоге если функция находит почтовый ящик в аккаунтах, то отправляет с него, если не находит, то отправка идет с ящика по умолчанию, а поле From заголовка письма подменяется почтой пользователя в Битрикс.
Большое спасибо за это решение, все работает прекрасно)
Подскажите, а что нужно чтобы научить коробку слать письма с одного stmp сервера (я.коннект), но в заголовки from подставлять почты пользователей? облако так умеет
Дмитрий Б, Yandex со средины месяца такое поведение запрещает и будет вас принимать как спамера. Облако в корне отличается от коробки) Наверно поднять свой почтовый сервер.
Алексей Шафранский написал: Дмитрий Б , Yandex со средины месяца такое поведение запрещает и будет вас принимать как спамера. Облако в корне отличается от коробки) Наверно поднять свой почтовый сервер.
Есть свой сервер, подключаюсь по IMAP у каждого пользователя, все равно отправка через 1 основной ящик. Как можно настроить, что бы отправлял каждый пользователь со своего ящика? (Настроено 100 ящиков, отправка с одного)
Так же добавлю, если необходима рассылка с одного сайта, сразу с нескольких почтовых аккаунтов, то их по аналогии можно перечислить, в той же строке, в главном модуле, через запятую: --account=mailbox1 --from= info1@site.ru , --account=mailbox2 --from= info2@site.ru , --account=mailbox3 --from= info3@site.ru
Если раньше это работало, то сейчас нет. При отправки с любой почты Битрикс будет подставлять почту последнюю в списке.
Решили это следующим образом:
1. Настроили аккаунты таким образом:
/home/bitrix/.msmtprc
Код
# Defaults for all accounts
defaults
keepbcc on
auth on
tls on
tls_starttls off
tls_certcheck off
port 465
host smtp.yandex.ru
logfile /home/bitrix/msmtp_default.log
account defaultsiteru
from default @site .ru
user default @site .ru
password ***
account acc1siteru
logfile /home/bitrix/msmtp_acc1_site_ru.log
from acc1 @site .ru
user acc1 @site .ru
password ***
account acc2siteru
logfile /home/bitrix/msmtp_acc2_site_ru.log
from acc2 @site .ru
user acc2 @site .ru
password ***
# Set a default account
account default : defaultsiteru
2. Добавили функцию custom_mail(для удобства разбил на несколько функций) в init.php:
В итоге если функция находит почтовый ящик в аккаунтах, то отправляет с него, если не находит, то отправка идет с ящика по умолчанию, а поле From заголовка письма подменяется почтой пользователя в Битрикс.
Здравствуйте, подскажите, пожалуйста как данные функции запускаются, не увидел чтобы они запускались как обычно к примеру custom_mail ( $to , $subject , $body , $headers ); или они как-то по другому запускаются?
Дмитрий Б написал: Подскажите, а что нужно чтобы научить коробку слать письма с одного stmp сервера (я.коннект), но в заголовки from подставлять почты пользователей? облако так умеет
Верно ниже ответили, подмена - верный путь к спаму, в облаке можно использовать для каждого ящика свой SMTP. Решение - скрипт, что я выкладывал ранее или свой smtp сервер. Но в скрипте придется каждый адрес прописывать отдельно.
Цитата
Vladimir Kalinichenko написал: Есть свой сервер, подключаюсь по IMAP у каждого пользователя, все равно отправка через 1 основной ящик.Как можно настроить, что бы отправлял каждый пользователь со своего ящика?(Настроено 100 ящиков, отправка с одного)
Настраивайте на сервере с битрикс например ssmtp, подключайтесь к своему серверу и рассылайте письма со всех адресов. Мы сейчас так делаем, все общение менеджеров, автоматизация рассылки по 30-40к адресов, проблем со спамом нет.
Цитата
Максим Белокуров написал: Здравствуйте, подскажите, пожалуйста как данные функции запускаются, не увидел чтобы они запускались как обычно к примеру custom_mail ( $to , $subject , $body , $headers );или они как-то по другому запускаются?
Дмитрий Данилов написал: как настроить встроенный в Bitrix Env - msmtp чтобы почта каждого сайта шла со своего аккаунта (по умолчанию все 4 сайта шлют почту с аккаунта mail@site1.ru что не совсем корректно - проекты абсолютно разные)
Дмитрий Данилов написал: остается решить задачу: как настроить встроенный в Bitrix Env - msmtp чтобы почта каждого сайта шла со своего аккаунта (по умолчанию все 4 сайта шлют почту с аккаунта mail@site1.ru что не совсем корректно - проекты абсолютно разные)
Цитата
Дмитрий Виртенбергер написал: vip6,Добрый день. Не могли бы подробней рассказать куда и в каком виде вставлять Вашу функцию для почты. У меня BitrixVM.CRM, и я никак не могу заставить ее слать письма с одного сайта но с разных почтовых ящиков. При вставке Вашей функции в /home/bitrix/www/bitrix/php_interface/init.php ровным счетом ничего не происходит, письма не улетают, даже логов нет. Не могу понять где и на чем я споткнулся. Заранее спасибо!
Гаврил Скрябин написал: У меня такая же ситуация! Прошу помочь!
Вроде всех интересующихся добавил. Объясню, как решил эту проблему у себя. Решение только для BitrixEnv сервера.
Заходим на сервер под root'ом. 1. Сначала смотрим файл /etc/php.d/bitrixenv.ini Ищем строку: sendmail_path = msmtp -t -i если строки нету, то добавляем в самом конце.
2. Идем в папку /etc/httpd/bx/custom (командой: cd/etc/httpd/bx/custom) если файла z_bx_custom.conf нету, то создаем (touch z_bx_custom.conf) в файл, в конец, добавляем настройки для ваших сайтов, например:
Код
<Directory /home/bitrix/www>
php_admin_value sendmail_path "msmtp -t -i -a site1.ru"
</Directory>
<Directory /home/bitrix/ext_www/site2.ru>
php_admin_value sendmail_path "msmtp -t -i -a site2.ru"
</Directory>
Редактировать файл можно командой vi или nano (например: nano z_bx_custom.conf) Это укажет php-скриптам, что если они в этой директории, то использовать настройки почты аккаунта site1.ru (или другого)
3. В файле /home/bitrix/.msmtprc добавляем настройки аккаунтов (можно через меню bitrixenv или вручную: vi /home/bitrix/.msmtprc) Например пишем настройки такие:
Код
account default
logfile /home/bitrix/msmtp_default.log
host smtp.yandex.ru
port 587
from info@site1.ru
keepbcc on
auth on
user info@site1.ru
password blablabla1
tls on
tls_certcheck off
# smtp account configuration for site1.ru
account site1.ru
logfile /home/bitrix/msmtp_site1.ru.log
host smtp.yandex.ru
port 587
from info@site1.ru
keepbcc on
auth on
user info@site1.ru
password blablabla1
tls on
tls_certcheck off
# smtp account configuration for site2.ru
account site2.ru
logfile /home/bitrix/msmtp_site2.ru.log
host smtp.yandex.ru
port 587
from info@site2.ru
keepbcc on
auth on
user info@site2.ru
password blablabla1
tls on
tls_certcheck off
В принципе, этого уже будет достаточно, чтобы сайты на одном сервере отправляли почту с нужных аккаунтов почты, но есть некоторый нюанс, когда почта отправляется с php разработок, где не используют явную папку и тогда настройка для apache не подхватывается. Тут может помочь шаг 4.
4 Заходим в настройки Главного модуля Битрикс сайта, закладка "Почта и СМС" и находим строку "Дополнительный параметр для передачи функции mail:", где в поле надо вписать -a site1.ru (ну или site2.ru.. или как вы по другому указали имя настройки для почты)
Все. После этого вся почта должна работать и отправлять почту с нужных аккаунтов. Лишние скрипты в init.php (где нет еще понятия "сайта" для Битрикса) не нужны.