Command returned error bitrix smtp

РЕЦЕПТ: Настройки почты в BitrixVM 5.0.44 Цитата Денис Диденко пишет: SegFault 99% дает APC, можно просто использовать другой кеш Если не решите проблему — обращайтесь, руками бы посмотреть, так не понятно что происходит. Цитата Надежда Неверова пишет: В-общем, уведомления заработали, когда я сделала следующее:1) Перевела ВСЕ агенты на крон. http://dev.1c-bitrix.ru/learning/course/?COURSE_ID=43&LESSON_ID=2943 2) закомментировала в файле […]

Содержание

  1. РЕЦЕПТ: Настройки почты в BitrixVM 5.0.44
  2. Настройка почты на VM Bitrix
  3. Как исправить ошибки SMTP-сервера при отправке писем
  4. Как избежать ошибок при составлении и отправке писем
  5. Положительные и отрицательные сообщения SMTP-сервера
  6. Читайте также
  7. Виды почтовых сервисов
  8. Классификация отрицательных SMTP-сообщений. Способы решения проблем
  9. Почтовый сервер сообщил об ошибке 421
  10. Получено сообщение с кодом 451
  11. Ошибка почтового сервера 452
  12. Сервер сообщил об ошибке SMTP 550
  13. Почтовый сервер ответил ошибкой 571
  14. Сертификат почтового сервера недействителен
  15. Проверка доступности почтового сервера программным методом

РЕЦЕПТ: Настройки почты в BitrixVM 5.0.44

Цитата
Денис Диденко пишет:
SegFault 99% дает APC, можно просто использовать другой кеш
Если не решите проблему — обращайтесь, руками бы посмотреть, так не понятно что происходит.
Цитата
Надежда Неверова пишет:
В-общем, уведомления заработали, когда я сделала следующее:
1) Перевела ВСЕ агенты на крон. http://dev.1c-bitrix.ru/learning/course/?COURSE_ID=43&LESSON_ID=2943
2) закомментировала в файле кронтаба строку

* * * * *bitrix test -f /home/bitrix/www/bitrix/modules/main/tools/cron_events.php && < /usr/bin/php -f /home/bitrix/www/bitrix/modules/main/tools/cron_events.php ; >>/dev/null 2>&1
и поставила свою из инструкции
*/1 * * * * bitrix /usr/bin/php -f /home/bitrix/www/bitrix/php_interface/cron_events.php

2) Сменила права на конфигурационный файл .msmtprc на 644
3) Скопировала конфигурационный файл /home/bitrix/.msmtprc в папку /etc/. Команда:

cp /home/bitrix/.msmtprc /etc/msmtprc

Я всё оставил как есть по дефолту, то есть
— агенты итак были на крон
— ничего не правил в строке запуска крона, который добавил через «Масштабирование»
— не менял права на конфигурационный файл

Единственное, поставил symlink из /home/bitrix/.msmtpr в /etc/msmtprc вместо копирования.

Цитата
ZiXO.ru пишет:
Наверняка стоит упомянуть для тех, кто в поисках проблем с почтой попадёт в эту ветку, что с 16.09.2014 Яндекс (и @yandex.ru, и ПДД) перестал принимать почту без шифрования. А для отправки почты на 465 порт, postfix, например, настраивается только с большим бубном.

В общем как оказалось достаточно указать в main.cf нужный порт и добавить директиву smtp_use_tls = yes

Цитата
Алексей Комсомоленко пишет:
выложите рабочий .msmtprc

# smtp account configuration for default
account default
logfile /home/bitrix/msmtp_default.log
host smtp.yandex.ru
port 25
from user@host.ru
keepbcc on
auth on
user user@host.ru
password *******
tls on
tls_certcheck off

вот с этим у меня работает, конечно user@host.ru надо на вашего поменять и пароль не звездочки а действующий пароль от юзера, плюс важный момент под юзером от которого будете слать почту обязательно надо зайти первый раз и заполнить все данные профиля иначе как ни юзай почту не заработает без персональных данных.

Два года использования pdd.yandex.ru с почтой в нескольких доменах, 50 аккаунтов, через полгода пришлось отказаться от использования почтовых программных клиентов — отказы в работе служб smtp, pop, imap длительностью от нескольких минут до пары часов были почти еженедельно, при этом почта была доступна через веб и принималась серверами яндекса при отсылке напрямую.

По моему глубокому убеждению, в случае использования BitrixEnv/BitrixVM самый надежный и беспроблемный в дальнейшем способ организовать работу почты — это настройка postfix с отправкой почты напрямую, с DKIM и SPF записями в зоне домена от имени которого почта отправляется. Могу написать пошаговую инструкцию как это все настроить, при явной потребности сообщества в сем.

Цитата
Олег Шамаев пишет:
Могу написать пошаговую инструкцию как это все настроить,
Цитата
Олег Шамаев пишет:
Могу написать пошаговую инструкцию как это все настроить, при явной потребности сообщества в сем.
Цитата
Алексей Косоротов пишет:

— не менял права на конфигурационный файл

Единственное, поставил symlink из /home/bitrix/.msmtpr в /etc/msmtprc вместо копирования.

Цитата
Олег Шамаев написал:
Могу написать пошаговую инструкцию как это все настроить, при явной потребности сообщества в сем.

добрый день! подскажите, пожалуйста. установила vmplayer, на него свежую версию машины и корп портал.
пытаюсь прописать почту через управление масштабированием, указываю реальный емейл и его настройки (пробовала гугл и мейл), но каждый раз как нажимаю начать выдается ошибка:
Options SMTPHost= EmailAddress= are mandatory
Соответственно, тест системы или конфигурации тоже выдает ошибку, что почта не работает.
Через управление сайтом в консоли настройки заданы, но не работает почему-то

Проблема еще в том, что я не знаток линукс-систем)
Если выполняю на портале php-скрипт для проверки (настройки почты сохранены через консоль), то портал намертво повисает

Источник

Настройка почты на VM Bitrix

При установке чистого шаблона виртуальной машины Bitrix в набор предустановленного ПО не входит почтовый сервер. Это политика компании 1C Битрикс , а не хостинг-провайдера.

Чтобы настроить почту на сервер Bitrix, воспользуйтесь следующей инструкцией.

Мы рекомендуем сделать это через стороннее SMTP . Для этого ваш домен должен быть делегирован на Яндекс ПДД, Почту для домена Mail.ru или аналогичные сервисы.

1. Подключаемся к серверу по SSH и попадаем в меню Bitrix-окружения:

2. Переходим в пункты:

Далее последовательно появятся вопросы (подсказки в скобках):

— адрес почтового сервера. Для Яндекс — smtp.yandex.ru

3. Указание порта, способа авторизации и шифрования:

5. В дальнейшем будет запрошен логин и пароль от почтового ящика, вводим их.

В результате будет создан файл /etc/msmtprc , в котором будут указаны внесённые настройки:

После этого почта на сайте начнёт работать.

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

1. Устанавливаем postfix :

2. Через меню Битрикс вносим настройки:

3. Cоздаем файл лога и выставляем на него права:

Пример письма, отправленного без ошибок:

Вносить изменения в настройки можно непосредственно в файл либо повторно пройти настройки через меню Битрикс.

Источник

Как исправить ошибки SMTP-сервера при отправке писем

Будучи менеджером коммерческого отдела небольшой торговой компании, я выполнял задачу по отправке нескольких сотен писем постоянным и потенциальным клиентам. Базу формировали из открытых источников мы сами, предложение было реально интересным целевой аудитории. Возникла «неожиданная» проблема – часть писем стала возвращаться. Кроме того, начали приходить сообщения с указаниями кодов ошибки SMTP. Своего IT-специалиста в штате у нас не было, потому разобраться с проблемой я решил самостоятельно. О результатах этой работы, причинах возникновения таких ошибок и методах их решения расскажу в этой статье.

Как избежать ошибок при составлении и отправке писем

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

Самый простой способ это понять – отправить тестовое сообщение на свой ящик. Затем следует протестировать его отправку и получение, используя разные внешние почтовые сервисы: gmail, yandex, mail, rambler и другие. Если сообщение получено, следует ответить на него, проверив корректность исполнения команды «RE» вашим почтовым сервером и принятие ответа условным отправителем.

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

  • выделенный IP-адрес с целью исключить блокировку на стороне сервера-ретранслятора или почтовой программы конечного получателя;
  • криптографические подписи DKIM и SPF, помогающие подтвердить подлинность домена и минимизировать количество писем, воспринимаемых как спам.

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

Положительные и отрицательные сообщения SMTP-сервера

SMTP (Simple Mail Transfer Protocol) — это протокол, используемый большинством почтовых программ для отправки электронных сообщений в сети интернет. Некорректное взаимодействие между серверами, индивидуальные настройки на уровне программного обеспечения и многие другие причины приводят к появлению ошибок. В этом случае письма не доходят до получателей, возвращаются обратно или просто «пропадают». При возникновении таких ситуаций отправитель получает сообщение о наличии конкретной ошибки, отражающей SMTP-код последнего отклика сервера.

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

Первая цифра комбинации содержит информацию о качестве доставки:

  • сообщение доставлено («SMTP OK»);
  • возникла неизвестная или временная проблема («SMTP unknown»);
  • критическая ошибка («SMTP error»).

Существует четыре варианта значений для первой цифры кода:

  • 2xx – положительный результат, есть возможность передачи следующей команды;
  • 3xx – отложенный результат, необходимо осуществление дополнительных действий;
  • 4xx – сообщение не принято, но проблема носит временный характер, и запрос может быть повторен через какое-то время;
  • 5xx – категорический отказ выполнения команды, отправка запроса со стороны передающего сервера в том же виде невозможна.

Вторая цифра в коде сообщает о категории ответа:

  • 0 – синтаксические ошибки;
  • 1 – ответы на запросы информации;
  • 2 – ошибки канала передачи;
  • 3 и 4 – неизвестный тип ошибки;
  • 5 – статус почтовой системы.

Третья цифра дает более расширенную информацию о значении, указанном во второй цифре SMTP-ответа.

Помимо цифровой комбинации, SMTP-сообщение может содержать дополнительную текстовую информацию.

Полную информацию о кодах, их компоновке и значениях можно найти в спецификациях RFC 5321 и RFC 1893.

Читайте также

Виды почтовых сервисов

На программном уровне существует несколько видов обработки электронной почтовой корреспонденции. К первой группе относятся виртуальные сервисы, доступные чаще всего в бесплатном исполнении через интернет-соединение на сайте почтового сервера. Это всем известные ресурсы:

  • Gmail/Google Suite (почта от Google.com);
  • Yandex.ru;
  • Mail.ru;
  • Rambler.ru и другие.

Более подробную информацию о значениях ответов SMTP можно получить на сайтах популярных почтовых сервисов:

Ко второй группе относятся почтовые клиенты – программы, обладающие более расширенным функционалом, чем виртуальные сервисы. Наиболее популярными и универсальными почтовыми клиентами для Windows являются:

  • Opera Mail;
  • Mozilla Thunderbird;
  • Koma-Mail;
  • SeaMonkey;
  • The Bat!;
  • Microsoft Outlook.

Принципы работы почтовых клиентов несколько отличаются от процесса обработки корреспонденции виртуальными серверами. При отправке сообщения программа отсылает его не напрямую конечному получателю, а ретранслирует через сервер-релей. Этот процесс осуществляется чаще всего с использованием протокола SMTP, а получение корреспонденции обычно происходит с помощью IMAP или POP.

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

Классификация отрицательных SMTP-сообщений. Способы решения проблем

Я настроил свою почтовую программу – локальный клиент (MS Outlook и т.п.) или бесплатную почту на gmail или yandex. Начинаю отправлять письма, но сталкиваюсь с различными проблемами, связанными с тем, что мои респонденты не получают направленную им корреспонденцию. Соответственно, на мой ящик приходят сообщения об ошибках в виде кодировок SMTP.

Сразу опускаю тот пакет сообщений, которые начинаются с 2хх и 3хх, так как они содержат информацию о том, что задача получения письма уже решена положительно либо получит такой статус в ближайшее время. Более подробно рассмотрим некоторые виды кодированных сообщений, начинающихся с 4хх и 5хх, т.е. отклики SMTP-сервера, которые сообщают о наличии проблем.

Почтовый сервер сообщил об ошибке 421

Значение: Service Not Available. Сервер недоступен: канал связи будет закрыт.

Возможные причины

Варианты решения

Неправильно заданы параметры SMTP-соединения

Необходимо перепроверить настройки

Брандмауэр блокирует IP-адрес сервера электронной почты

Необходимо создать новое правило в брандмауэре

Блокируется трафик через порт 25

Попробуйте в настройках учетной записи электронной почты сменить номер порта SMTP на 465

Проблема использования VPN

Необходимо, чтобы провайдер услуги занес ваш почтовый сервер в белый список адресов VPN

Данная ошибка возникает наряду с грейлистингом (Greylisting «Серый список») при интенсивном использовании бесплатного SMTP-сервера, который лимитирует количество отправляемых сообщений в единицу времени. Для решения этой проблемы можно воспользоваться высоконагруженным SMTP-сервером. Чаще всего эта услуга является платной.

Получено сообщение с кодом 451

Значение: Requested action aborted: local error in processing. Требуемое действие прерывалось: ошибка в обработке.

Возможные причины

Варианты решения

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

В настройках сервера увеличить лимит или задать ограничение не на количество подключений, а на количество писем на одного пользователя. Накопившуюся очередь писем можно отправить повторно командой «force send»

Неправильно настроены MX-записи домена, из-за чего происходит неправильная маршрутизация писем

Проверьте логи, конфигурационные файлы, МХ-записи и разрешения, внесите корректировки

Устранение проблем с доставкой электронной почты для кода ошибок 451 4.7.500–699 (ASxxx) в Exchange Online. Электронная почта из доменов onmicrosoft.com ограничена и фильтруется для предотвращения спама.

Ошибка почтового сервера 452

Значение: Insufficient system resources. Запрашиваемое действие не выполнено: недостаточно места в системе.

Возможные причины

Варианты решения

На сервере получателя закончилось место, поэтому письмо не доставляется

Чтобы в этом убедиться, достаточно попробовать осуществить отправку письма с другого сервера

В сообщении присутствует текст «Out of memory». Это значит, что недостаточно места на вашем сервере

Необходимо проверить количество отправляемых писем в очереди, наличие свободного места на диске и объем доступной памяти

В Microsoft Exchange Server есть специальный компонент мониторинга доступных ресурсов Back Pressure, который отслеживает свободное место на диске, на котором хранятся очереди транспортной службы Exchange. При возникновении такой ошибки можно сделать следующее:

  • очистить диск от ненужных файлов;
  • отключить мониторинг Back Pressure (не рекомендуется);
  • перенести транспортную очередь на другой диск достаточного объема.

Сервер сообщил об ошибке SMTP 550

Значение: Mailbox unavailable. Требуемые действия не предприняты: электронный ящик недоступен

Возможные причины

Варианты решения

Неверно указан email-адрес получателя

Необходимо связаться с адресатом альтернативным способом и уточнить правильность написания адреса, а также убедиться, что он является действующим

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

Провести полную проверку специализированной антивирусной программой

На стороне вашего интернет-провайдера установлены ограничения на отправку исходящих сообщений

Необходимо связаться с поставщиком интернет-услуг и получить консультацию по устранению данной проблемы

Сервер получателя не работает

Отправьте тестовое письмо на другой почтовый сервер. Свяжитесь с получателем и сообщите о проблеме

Данная ошибка может возникнуть из-за настроек программы Антиспам на стороне получателя. Проверьте корректность оформления вашего письма и другие параметры, по которым ваше сообщение может быть отнесено к нежелательным.

Почтовый сервер ответил ошибкой 571

Значение: SMTP Protocol Returned a Permanent Error 571 xxx@mail.ru prohibited. We do not relay/Spam message rejected. Ошибка на стороне получателя почты.

Возможные причины

Варианты решения

Ваш IP-адрес заблокирован на стороне конечного получателя спам-фильтром, антивирусом или файрволом

Данную проблему может решить только администратор сети получателя, исключив ваши идентификационный данные из списка блокировки или добавив их в «белый список»

Неверные учетные данные ретранслятора. У вас нет разрешения на отправку электронной почты через сервер, который находится между вами и получателем

Обратитесь к администратору данного ресурса для изменения настроек

У IP отправителя нет RDNS

Проверьте настройки получения писем и разрешения для доменов-отправителей

Как я уже писал выше, разные почтовые серверы накладывают свои ограничения на прием и отправку сообщений. Код 571 в Google Suite расшифровывается следующим образом: «Действующая политика запрещает отправку этого сообщения». Письмо может содержать защищенные или конфиденциальные данные – номера кредитных карт и т.п. Или политика администрирования запрещает отправку определенными пользователями сообщений адресатам вне установленной группы.

Сертификат почтового сервера недействителен

Обычно с таким сообщением приходится сталкиваться пользователям, у которых настроен Microsoft Exchange Server/MS Outlook. В данной ситуации самое простое решение – обновить сертификат.

Проверка доступности почтового сервера программным методом

В данной статье описаны лишь некоторые варианты ошибок, которые могут возникнуть при отправке электронных сообщений. Полный перечень достаточно объемен и во многом зависит от настроек конкретного сервера как на стороне отправителя, так и получателя. Некоторые из ошибок могут быть легко устранены обычным пользователем, другие под силу лишь опытным администраторам.

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

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

Прочитав эту статью, обратите внимание на то, как настроен ваш почтовый сервер на получение сторонних писем по SMTP-протоколу. Быть может, в данный момент ваш антиспам или локальная политика фильтрации входящих сообщений блокирует получение очень важного и нужного для вас месседжа? Проверьте сами или обратитесь к системному администратору. Если ошибку с SMTP никак не удается решить, то попробуйте обратиться в службу поддержки почтового сервера.

Источник

 

Пользователь 46342

Постоянный посетитель

Сообщений: 184
Баллов: 30
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 29.07.2009

#26

0

19.08.2014 19:13:02

Цитата
Денис Диденко пишет:
SegFault 99% дает APC, можно просто использовать другой кеш  :)
Если не решите проблему — обращайтесь, руками бы посмотреть, так не понятно что происходит.

А насчет этого, нам удалось выяснить, что апач падает из-за кода php. А именно из-за строчки 7 файла file.php одного из системных компонентов. Обращение в ТП результата не дало, там посоветовали собрать свое окружение.
А также я попробовала отключить APC как описано в этой ветке Александром Корольковым, и у меня ошибка Segmentation Fault случилась сразу после отключения APC и перезагрузки httpd. Так что, судя по всему, дело не в нем.

 

Пользователь 11861

Постоянный посетитель

Сообщений: 281
Баллов: 39
Авторитет:

1

Рейтинг пользователя:

3

Регистрация: 15.05.2007

#27

0

24.08.2014 14:00:29

Надежда Неверова, спасиьо за ваш комментарий

Цитата
Надежда Неверова пишет:
В-общем, уведомления заработали, когда я сделала следующее:
1) Перевела ВСЕ агенты на крон. http://dev.1c-bitrix.ru/learning/course/?COURSE_ID=43&LESSON_ID=2943
2) закомментировала в файле кронтаба строку

* * * * *bitrix test -f /home/bitrix/www/bitrix/modules/main/tools/cron_events.php && { /usr/bin/php -f /home/bitrix/www/bitrix/modules/main/tools/cron_events.php ; } >/dev/null 2>&1
и поставила свою из инструкции
*/1 * * * * bitrix /usr/bin/php -f /home/bitrix/www/bitrix/php_interface/cron_events.php

2) Сменила права на конфигурационный файл .msmtprc на 644
3) Скопировала конфигурационный файл /home/bitrix/.msmtprc в папку /etc/. Команда:

cp /home/bitrix/.msmtprc /etc/msmtprc

Я всё оставил как есть по дефолту, то есть
— агенты итак были на крон
— ничего не правил в строке запуска крона, который добавил через «Масштабирование»
— не менял права на конфигурационный файл

Единственное, поставил symlink из  /home/bitrix/.msmtpr в  /etc/msmtprc вместо копирования.

 

Пользователь 230239

Посетитель

Сообщений: 23
Баллов: 3
Авторитет:

0

Рейтинг пользователя:

0

Регистрация: 09.12.2013

#28

0

05.09.2014 08:51:32

Версия BitrixVM 5.0.45.
У меня возникла ошибка при настройке почты:

Код
Enter local site name (default): mystudio.ru
Email is not configured on mystudio.ru
Enter from address (ex. bob@example.org): bitrix@mystudio.ru
Enter server address or DNS (127.0.0.1):
Enter server port (25):
Do you need auth options for 127.0.0.1 (N|y): n
Do you need TLS enable for 127.0.0.1 (N|y): n
Command return error

И как понять, в чем дело?

 

Пользователь 230239

Посетитель

Сообщений: 23
Баллов: 3
Авторитет:

0

Рейтинг пользователя:

0

Регистрация: 09.12.2013

#29

0

05.09.2014 10:22:09

Разобрался. Sitename должно совпадать с существующим. У меня оно было default, я указывал mystudio.ru, а нужно было указывать default.

 

Пользователь 30008

Заглянувший

Сообщений: 7
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 22.09.2008

#30

0

19.09.2014 13:25:12

Наверняка стоит упомянуть для тех, кто в поисках проблем с почтой попадёт в эту ветку, что с 16.09.2014 Яндекс (и @yandex.ru, и ПДД) перестал принимать почту без шифрования. А для отправки почты на 465 порт, postfix, например, настраивается только с большим бубном.

 

Пользователь 29330

Постоянный посетитель

Сообщений: 129
Баллов: 15
Авторитет:

1

Рейтинг пользователя:

1

Регистрация: 09.09.2008

#31

0

22.09.2014 14:55:12

Цитата
ZiXO.ru пишет:
Наверняка стоит упомянуть для тех, кто в поисках проблем с почтой попадёт в эту ветку, что с 16.09.2014 Яндекс (и @yandex.ru, и ПДД) перестал принимать почту без шифрования. А для отправки почты на 465 порт, postfix, например, настраивается только с большим бубном.

Вот я как раз столкнулся с такой проблемой. Можете рассказать подробнее про этот большой бубен?  

 

Пользователь 29330

Постоянный посетитель

Сообщений: 129
Баллов: 15
Авторитет:

1

Рейтинг пользователя:

1

Регистрация: 09.09.2008

#32

1

23.09.2014 12:51:37

В общем как оказалось достаточно указать в main.cf нужный порт и добавить директиву smtp_use_tls = yes

Т.е. как-то так:

Код
relayhost = smtp.yandex.ru:465
smtp_use_tls = yes

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
 

Пользователь 35565

Заглянувший

Сообщений: 22
Баллов: 2
Авторитет:

1

Рейтинг пользователя:

1

Регистрация: 08.01.2009

#33

0

23.09.2014 15:37:40

выложите рабочий .msmtprc для Яндекса, а то с 16 бьюсь с настройками — почта всё равно не уходит…

 

Пользователь 29330

Постоянный посетитель

Сообщений: 129
Баллов: 15
Авторитет:

1

Рейтинг пользователя:

1

Регистрация: 09.09.2008

#34

0

23.09.2014 15:46:10

Алексей, у меня почта настроена через Postfix, поэтому такого конфига нет.

 

Пользователь 23748

Гуру

Сообщений: 2754
Баллов: 447
Авторитет:

5

Рейтинг пользователя:

3

Регистрация: 20.04.2008

АКРИТ Веб-студия

#35

2

23.09.2014 22:52:32

Цитата
Алексей Комсомоленко пишет:
выложите рабочий .msmtprc

# smtp account configuration for default
account default
logfile /home/bitrix/msmtp_default.log
host smtp.yandex.ru
port 25
from user@host.ru
keepbcc on
auth on
user user@host.ru
password *******
tls on
tls_certcheck off

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

зайти первый раз

и заполнить все данные профиля иначе как ни юзай почту не заработает без персональных данных.

Веб-студия АКРИТ Увеличьте продажи трансформировав сайт в сеть торговых точек в интернете

 

Пользователь 29330

Постоянный посетитель

Сообщений: 129
Баллов: 15
Авторитет:

1

Рейтинг пользователя:

1

Регистрация: 09.09.2008

#36

0

24.09.2014 12:27:56

Рано радовался. Сегодня с утра опять перестала отправляться почта через postfix и яндекс smtp. Видимо что-то еще нужно настраивать с бубном, непонятно только как вчера-то полдня она работала…

 

Пользователь 53386

Постоянный посетитель

Сообщений: 269
Баллов: 26
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 01.12.2009

#37

5

24.09.2014 12:49:56

Два года использования pdd.yandex.ru с почтой в нескольких доменах, 50 аккаунтов, через полгода пришлось отказаться от использования почтовых программных клиентов — отказы в работе служб smtp, pop, imap длительностью от нескольких минут до пары часов были почти еженедельно, при этом почта была доступна через веб и принималась серверами яндекса при отсылке напрямую.

По моему глубокому убеждению, в случае использования BitrixEnv/BitrixVM самый надежный и беспроблемный в дальнейшем способ организовать работу почты — это настройка postfix с отправкой почты напрямую, с DKIM и SPF записями в зоне домена от имени которого почта отправляется. Могу написать пошаговую инструкцию как это все настроить, при явной потребности сообщества в сем.    

 

Пользователь 23748

Гуру

Сообщений: 2754
Баллов: 447
Авторитет:

5

Рейтинг пользователя:

3

Регистрация: 20.04.2008

АКРИТ Веб-студия

#38

3

24.09.2014 12:58:56

Цитата
Олег Шамаев пишет:
Могу написать пошаговую инструкцию как это все настроить,

весьма любопытно!

Веб-студия АКРИТ Увеличьте продажи трансформировав сайт в сеть торговых точек в интернете

 

Пользователь 29330

Постоянный посетитель

Сообщений: 129
Баллов: 15
Авторитет:

1

Рейтинг пользователя:

1

Регистрация: 09.09.2008

#39

1

24.09.2014 15:11:47

Цитата
Олег Шамаев пишет:
Могу написать пошаговую инструкцию как это все настроить, при явной потребности сообщества в сем.

Напишите, будем очень благодарны.

 

Пользователь 46342

Постоянный посетитель

Сообщений: 184
Баллов: 30
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 29.07.2009

#40

2

29.09.2014 12:54:17

Цитата
Алексей Косоротов пишет:

— не менял права на конфигурационный файл

Единственное, поставил symlink из /home/bitrix/.msmtpr в /etc/msmtprc вместо копирования.

Да, права на конфиг. файл не надо было менять, там на другое сервер ругался. Уже не помню, на что.
Да, можно и симлинк, это ж по сути даже лучше!

 

Пользователь 1190

Посетитель

Сообщений: 65
Баллов: 6
Авторитет:

0

Рейтинг пользователя:

1

Регистрация: 31.01.2005

#41

0

25.10.2014 18:12:47

Цитата
Олег Шамаев написал:
Могу написать пошаговую инструкцию как это все настроить, при явной потребности сообщества в сем.

Да, были бы признательны!

 

Пользователь 53386

Постоянный посетитель

Сообщений: 269
Баллов: 26
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 01.12.2009

#42

4

26.10.2014 17:06:57

Обещанная инструкция, как настроить BitrixEnv отправлять почту напрямую используя MTA Exim

http://dev.1c-bitrix.ru/community/webdev/user/53386/blog/11674/

 

Пользователь 283171

Заглянувший

Сообщений: 5
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 19.09.2014

#43

0

05.02.2015 17:40:39

добрый день! подскажите, пожалуйста. установила vmplayer, на него свежую версию машины и корп портал.
пытаюсь прописать почту через управление масштабированием, указываю реальный емейл и его настройки (пробовала гугл и мейл), но каждый раз как нажимаю начать выдается ошибка:
Options SMTPHost= EmailAddress= are mandatory
Соответственно, тест системы или конфигурации тоже выдает ошибку, что почта не работает.
Через управление сайтом в консоли настройки заданы, но не работает почему-то

Проблема еще в том, что я не знаток линукс-систем)
Если выполняю на портале php-скрипт для проверки (настройки почты сохранены через консоль), то портал намертво повисает

if(mail(«email@example.com», «TEST SUBJECT», «TEST BODY»))echo «Почтовая система работает!»;
else
echo «Неудача, почтовая система не работает, попробуйте еще!»;

 

Пользователь 46342

Постоянный посетитель

Сообщений: 184
Баллов: 30
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 29.07.2009

#44

0

06.02.2015 07:55:29

Цитата
miruch написал:
Options SMTPHost= EmailAddress= are mandatory

Тут написано Значения SMTPHost и EmailAddress обязательные.
Вероятно, что-то не так заполнено? Если все заполнено ВЕРНО, то это повод обратиться в ТП.

 

Пользователь 283171

Заглянувший

Сообщений: 5
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 19.09.2014

#45

0

06.02.2015 15:35:02

Цитата
Надежда Неверова написал:

Цитата
miruch   написал:
Options SMTPHost= EmailAddress= are mandatory

Тут написано Значения SMTPHost и EmailAddress обязательные.
Вероятно, что-то не так заполнено? Если все заполнено ВЕРНО, то это повод обратиться в ТП.

Все заполнено верно, в том-то и дело. Через рут настройки почты для сайта сохраняются, а через сайт никак.
У меня ощущение, что сайту прав не хватает на запись настроек. Я правильно понимаю, что вирт. машина запускается под пользователем битрикс?

Может подскажете команду для консоли, чтобы дать пользователю bitrix нужные права на конфиг .mstmp/
У меня еще проверка доступа ругается, что не хватает прав серверу на htaccess (сейчас стоит 420). тоже не пойму как поправить

 

Пользователь 46342

Постоянный посетитель

Сообщений: 184
Баллов: 30
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 29.07.2009

#46

0

06.02.2015 15:54:37

Сам Битрикс работает на веб сервере на виртуальной машине под пользователем bitrix.
Конфиг для почты для пользователя bitrix лежит в /home/bitrix/ и называется .msmtprc
Конфиг для почты по дефолту должен лежать в папке /etc/ и называться msmtprc (без точки)

Если, конечно, за полгода ничего не изменилось или я не путаю.
Права доступа меняются просто . В справочнике есть

http://itshaman.ru/articles/7/komandy-linux#file2  

 

Пользователь 283171

Заглянувший

Сообщений: 5
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 19.09.2014

#47

0

06.02.2015 17:20:23

права поменяла, но не помогло. поддержка пока молчит.

 

Пользователь 283171

Заглянувший

Сообщений: 5
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 19.09.2014

#48

0

07.02.2015 12:19:43

Подскажите, пожалуйста, может ли быть ошибка с почтой из-за того, что виртуалка с битрикс ВМ стоит на Windows Server 2012?
Мне вчера настроили smtp-сервер и postfix, как я понимаю, и теперь напрямую с консоли через echo text | mail почта отправляется. но портал так и не может увидеть эти настройки.
Может имеет смысл в настройках виртуалки прописать localhost? или нужно везде указывать smtp.google.com?
Я плохо понимаю связь между разными скриптами и настройками самой машины.
Вчера попробовали воспользоваться custom mail? но тоже не помогло

нашли проблему. всего лишь надо было в настройке msmtp дописать руками tls_starttls on и поправить тестовый скрипт. все пошло.

Правда, уведомления пользователям с портала пока не приходят,но в приглашения на портал и crm-почта работают.

 

Пользователь 46342

Постоянный посетитель

Сообщений: 184
Баллов: 30
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 29.07.2009

#49

0

07.02.2015 17:46:45

Цитата
miruch написал:
Подскажите, пожалуйста, может ли быть ошибка с почтой из-за того, что виртуалка с битрикс ВМ стоит на Windows Server 2012?

Пожалуйста, напишите, как вам все удалось.
У нас также виртуалка на сервере Windows 2012 R2, да еще и за Юзергейтом. Мучаюсь 2-ю неделю.

Если приглашение на портал ОК, значит почта настроена правильно. А уведомления надо ВСЕ перевести на крон по Инструкции http://dev.1c-bitrix.ru/learning/course/?COURSE_ID=43&LESSON_ID=2943 Тогда заработает все.

 

Пользователь 205449

Посетитель

Сообщений: 58
Баллов: 9
Авторитет:

0

Рейтинг пользователя:

0

Регистрация: 18.07.2013

#50

0

11.02.2015 13:21:45

Долго не мог настроить оправку почты. Но не с внешнего почтового сервера, а с текущего. Сделал по этой инструкции и наконец заработало!
Раньше делал также но с SMTP авторизацией и не работало.  

Открытые члены

  __construct ($host, $port, $tls, $strict, $login, $password, $encoding=null)
 
  __destruct ()
 
  connect (&$error)
 
  authenticate (&$error)
 
  getErrors ()
 

Поля данных

const  ERR_CONNECT = 101
 
const  ERR_REJECTED = 102
 
const  ERR_COMMUNICATE = 103
 
const  ERR_EMPTY_RESPONSE = 104
 
const  ERR_STARTTLS = 201
 
const  ERR_COMMAND_REJECTED = 202
 
const  ERR_CAPABILITY = 203
 
const  ERR_AUTH = 204
 
const  ERR_AUTH_MECH = 205
 

Защищенные члены

  disconnect ()
 
  reset ()
 
  starttls (&$error)
 
  capability (&$error)
 
  executeCommand ($command, &$error)
 
  exchange ($data, &$error)
 
  sendData ($data)
 
  readLine ()
 
  readResponse ()
 
  errorMessage ($errors, $details=null)
 

Защищенные данные

  $stream
 
  $errors
 
  $sessCapability
 
  $options = array()
 

См. определение в файле smtp.php строка 12

◆ __construct()

__construct (   $host,
  $port,
  $tls,
  $strict,
  $login,
  $password,
  $encoding = null 
)

Smtp client constructor.

Аргументы
string $host Host.
string $port Port.
string $tls Tls.
string $strict Strict.
string $login Login.
string $password Password.
string | null $encoding,. If null — current site encoding.

См. определение в файле smtp.php строка 41

42 {

44

45 $this->options = array(

46 ‘host’ => $host,

47 ‘port’ => $port,

48 ‘tls’ => $tls,

49 ‘socket’ => sprintf(‘%s://%s:%s’, ($tls ? ‘ssl’ : ‘tcp’), $host, $port),

50 ‘timeout’ => COption::getOptionInt(‘mail’, ‘connect_timeout’, B_MAIL_TIMEOUT),

51 ‘context’ => stream_context_create(array(

52 ‘ssl’ => array(

53 ‘verify_peer’ => (bool) $strict,

54 ‘verify_peer_name’ => (bool) $strict,

55 ‘crypto_method’ => STREAM_CRYPTO_METHOD_ANY_CLIENT,

56 )

57 )),

58 ‘login’ => $login,

59 ‘password’ => $password,

60 ‘encoding’ => $encoding ?: LANG_CHARSET,

61 );

62 }

◆ __destruct()

Disconnects from the submission server.

Возвращает
void

См. определение в файле smtp.php строка 69

◆ authenticate()

Authenticate to the submission server.

Аргументы
array $error Will be filled with authentication errors.
Возвращает
bool True if the authentication was successful, false — otherwise.

См. определение в файле smtp.php строка 242

243 {

244 $error = null;

245

246 if (!$this->connect($error))

247 {

248 return false;

249 }

250

251 $mech = false;

252

253 if ($capabilities = preg_grep(‘/^ AUTH x20 /ix’, $this->sessCapability))

254 {

255 if (preg_grep(‘/ x20 PLAIN ( x20 | $ ) /ix’, $capabilities))

256 {

257 $mech = ‘plain’;

258 }

259 else if (preg_grep(‘/ x20 LOGIN ( x20 | $ ) /ix’, $capabilities))

260 {

261 $mech = ‘login’;

262 }

263 }

264

265 if (!$mech)

266 {

268 return false;

269 }

270

271 if ($mech == ‘plain’)

272 {

274 sprintf(

275 «AUTH PLAINx00%s»,

276 base64_encode(sprintf(

277 «x00%sx00%s»,

278 Encoding::convertEncoding($this->options[‘login’], $this->options[‘encoding’], ‘UTF-8’),

279 Encoding::convertEncoding($this->options[‘password’], $this->options[‘encoding’], ‘UTF-8’)

280 ))

281 ),

282 $error

283 );

284 }

285 else

286 {

288 «AUTH LOGINx00%sx00%s»,

289 base64_encode($this->options[‘login’]),

290 base64_encode($this->options[‘password’])

291 ), $error);

292 }

293

294 if ($error)

295 {

297 $error = $this->errorMessage(array(Smtp::ERR_AUTH, $error), $response ? trim(end($response)) : null);

298

299 return false;

300 }

301

302 return true;

303 }

const ERR_COMMAND_REJECTED

errorMessage($errors, $details=null)

executeCommand($command, &$error)

◆ capability()

capability ( $error )
protected

См. определение в файле smtp.php строка 199

200 {

201 $error = null;

202

203 if (!$this->stream)

204 {

206 return false;

207 }

208

210 sprintf(

211 ‘EHLO %s’,

213 ),

214 $error

215 );

216

217 if ($error || !is_array($response))

218 {

221

222 return false;

223 }

224

225 $this->sessCapability = array_map(

226 function ($line)

227 {

228 return trim(mb_substr($line, 4));

229 },

230 $response

231 );

232

233 return true;

234 }

◆ connect()

Connect to the submission server.

Аргументы
array $error Will be filled with connection errors.
Возвращает
bool True if the connection was successful, false — otherwise.

См. определение в файле smtp.php строка 102

103 {

104 $error = null;

105

106 if ($this->stream)

107 {

108 return true;

109 }

110

111 $resource = @stream_socket_client(

112 $this->options[‘socket’], $errno, $errstr, $this->options[‘timeout’],

113 STREAM_CLIENT_CONNECT, $this->options[‘context’]

114 );

115

116 if ($resource === false)

117 {

119 return false;

120 }

121

122 $this->stream = $resource;

123

124 if ($this->options[‘timeout’] > 0)

125 {

126 stream_set_timeout($this->stream, $this->options[‘timeout’]);

127 }

128

130

131 if (false === $prompt)

132 {

134 }

135 else if (!preg_match(‘/^ 220 ( rn | x20 ) /x’, end($prompt)))

136 {

138 }

139

140 if ($error)

141 {

142 return false;

143 }

144

146 {

147 return false;

148 }

149

150 if (!$this->options[‘tls’] && preg_grep(‘/^ STARTTLS $/ix’, $this->sessCapability))

151 {

152 if (!$this->starttls($error))

153 {

154 return false;

155 }

156 }

157

158 return true;

159 }

◆ decodeError()

static decodeError (   $code )
static

Returns error message by code.

Аргументы
Возвращает
string

См. определение в файле smtp.php строка 483

484 {

485 switch ($code)

486 {

495

499 return Loc::getMessage(‘MAIL_SMTP_ERR_COMMAND_REJECTED’);

506

507 default:

509 }

510 }

static getMessage($code, $replace=null, $language=null)

◆ disconnect()

Disconnects from the submission server.

Возвращает
void

См. определение в файле smtp.php строка 79

80 {

81 if (!is_null($this->stream))

82 {

83 @fclose($this->stream);

84 }

85

86 unset($this->stream);

87 }

◆ errorMessage()

errorMessage (   $errors,
  $details = null 
)
protected

См. определение в файле smtp.php строка 441

442 {

444 $details = array_filter((array) $details);

445

446 foreach ($errors as $i => $error)

447 {

448 $errors[$i] = static::decodeError($error);

449 $this->errors->setError(new MainError((string) $errors[$i], $error > 0 ? $error : 0));

450 }

451

452 $error = join(‘: ‘, $errors);

453 if ($details)

454 {

455 $error .= sprintf(‘ (SMTP: %s)’, join(‘: ‘, $details));

456

457 $this->errors->setError(new MainError(‘SMTP’, -1));

458 foreach ($details as $item)

459 {

460 $this->errors->setError(new MainError((string) $item, -1));

461 }

462 }

463

464 return $error;

465 }

◆ exchange()

exchange (   $data,
$error 
)
protected

См. определение в файле smtp.php строка 328

329 {

330 $error = null;

331

332 if ($this->sendData(sprintf(«%srn», $data)) === false)

333 {

335 return false;

336 }

337

339

340 if ($response === false)

341 {

343 return false;

344 }

345

346 if (!preg_match(‘/^ [23] d{2} /ix’, end($response)))

347 {

349 }

350

351 return $response;

352 }

◆ executeCommand()

executeCommand (   $command,
$error 
)
protected

См. определение в файле smtp.php строка 305

306 {

307 $error = null;

308 $response = false;

309

310 $chunks = explode(«x00», $command);

311

312 $k = count($chunks);

313 foreach ($chunks as $chunk)

314 {

315 $k—;

316

317 $response = (array) $this->exchange($chunk, $error);

318

319 if ($k > 0 && mb_strpos(end($response), ‘3’) !== 0)

320 {

321 break;

322 }

323 }

324

325 return $response;

326 }

◆ getErrors()

Returns all Smtp client errors.

Возвращает
MainErrorCollection object.

См. определение в файле smtp.php строка 472

◆ readLine()

См. определение в файле smtp.php строка 385

386 {

387 $line = »;

388

389 while (!feof($this->stream))

390 {

391 $buffer = @fgets($this->stream, 4096);

392 if ($buffer === false)

393 {

394 break;

395 }

396

397 $meta = ($this->options[‘timeout’] > 0 ? stream_get_meta_data($this->stream) : array(‘timed_out’ => false));

398

399 $line .= $buffer;

400

401 if (preg_match(‘/rn$/’, $buffer, $matches) || $meta[‘timed_out’])

402 {

403 break;

404 }

405 }

406

407 if (!preg_match(‘/rn$/’, $line, $matches))

408 {

410

411 return false;

412 }

413

414 return $line;

415 }

◆ readResponse()

readResponse ( )
protected

Reads and returns server response.

Возвращает
array|false

См. определение в файле smtp.php строка 422

423 {

424 $response = array();

425

426 do

427 {

429 if ($line === false)

430 {

431 return false;

432 }

433

434 $response[] = $line;

435 }

436 while (!preg_match(‘/^ d{3} ( rn | x20 ) /x’, $line));

437

438 return $response;

439 }

◆ reset()

См. определение в файле smtp.php строка 89

90 {

92

93 $this->errors = new MainErrorCollection();

94 }

◆ sendData()

sendData (   $data )
protected

См. определение в файле smtp.php строка 354

355 {

356 $fails = 0;

357 while (BinaryString::getLength($data) > 0 && !feof($this->stream))

358 {

359 $bytes = @fputs($this->stream, $data);

360

361 if (false == $bytes)

362 {

363 if (false === $bytes || ++$fails >= 3)

364 {

365 break;

366 }

367

368 continue;

369 }

370

371 $fails = 0;

372

373 $data = BinaryString::getSubstring($data, $bytes);

374 }

375

376 if (BinaryString::getLength($data) > 0)

377 {

379 return false;

380 }

381

382 return true;

383 }

◆ starttls()

starttls ( $error )
protected

См. определение в файле smtp.php строка 161

162 {

163 $error = null;

164

165 if (!$this->stream)

166 {

168 return false;

169 }

170

171 $response = $this->executeCommand(‘STARTTLS’, $error);

172

173 if ($error)

174 {

177

178 return false;

179 }

180

181 if (stream_socket_enable_crypto($this->stream, true, STREAM_CRYPTO_METHOD_ANY_CLIENT))

182 {

184 {

185 return false;

186 }

187 }

188 else

189 {

191

193 return false;

194 }

195

196 return true;

197 }

◆ $errors

◆ $options

◆ $sessCapability

◆ $stream

◆ ERR_AUTH

◆ ERR_AUTH_MECH

const ERR_AUTH_MECH = 205

См. определение в файле smtp.php строка 23

◆ ERR_CAPABILITY

const ERR_CAPABILITY = 203

См. определение в файле smtp.php строка 21

◆ ERR_COMMAND_REJECTED

const ERR_COMMAND_REJECTED = 202

См. определение в файле smtp.php строка 20

◆ ERR_COMMUNICATE

const ERR_COMMUNICATE = 103

См. определение в файле smtp.php строка 16

◆ ERR_CONNECT

◆ ERR_EMPTY_RESPONSE

const ERR_EMPTY_RESPONSE = 104

См. определение в файле smtp.php строка 17

◆ ERR_REJECTED

◆ ERR_STARTTLS


Объявления и описания членов класса находятся в файле:

  • C:/Bitrix/modules/mail/lib/smtp.php

В консоли выходит такая ошибка «msmtp: the server sent an empty reply
msmtp: could not send mail (account default from /etc/msmtprc)»

файл конфигураций:

# smtp account configuration default
account default
logfile /home/bitrix/msmtp_default.log
host smtp.gmail.com
port 465
from ****************@gmail.com
keepbcc off
auth on
user *******************@gmail.com
password ************

tls on
tls_starttls on
tls_certcheck off


  • Вопрос задан

    более года назад

  • 597 просмотров

Пригласить эксперта

Попробуйте следующий конфиг:

account default
logfile /home/bitrix/msmtp_default.log
host smtp.gmail.com
port 587
from user@gmail.com
auth on
user user@gmail.com
password password
tls on
tls_starttls on
tls_certcheck off
keepbcc on


  • Показать ещё
    Загружается…

09 февр. 2023, в 11:42

7000 руб./за проект

09 февр. 2023, в 11:23

1500 руб./за проект

09 февр. 2023, в 10:11

1500 руб./в час

Минуточку внимания

Будучи менеджером коммерческого отдела небольшой торговой компании, я выполнял задачу по отправке нескольких сотен писем постоянным и потенциальным клиентам. Базу формировали из открытых источников мы сами, предложение было реально интересным целевой аудитории. Возникла «неожиданная» проблема – часть писем стала возвращаться. Кроме того, начали приходить сообщения с указаниями кодов ошибки SMTP. Своего IT-специалиста в штате у нас не было, потому разобраться с проблемой я решил самостоятельно. О результатах этой работы, причинах возникновения таких ошибок и методах их решения расскажу в этой статье.

Ошибка SMTP

Как избежать ошибок при составлении и отправке писем

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

Самый простой способ это понять – отправить тестовое сообщение на свой ящик. Затем следует протестировать его отправку и получение, используя разные внешние почтовые сервисы: gmail, yandex, mail, rambler и другие. Если сообщение получено, следует ответить на него, проверив корректность исполнения команды «RE» вашим почтовым сервером и принятие ответа условным отправителем.

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

  • выделенный IP-адрес с целью исключить блокировку на стороне сервера-ретранслятора или почтовой программы конечного получателя;
  • криптографические подписи DKIM и SPF, помогающие подтвердить подлинность домена и минимизировать количество писем, воспринимаемых как спам.

Важно! В случае несоблюдения этих элементарных правил вы рискуете не только тем, что конкретное письмо не будет доставлено адресату. При многократных попытках отправки письма в большинстве почтовых программ в блок-лист попадет вся корреспонденция, отправляемая с вашего email, и даже корпоративный домен (@domain.***).

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

В моей практике был случай, когда никак не удавалось добиться получения моей электронной корреспонденции одним из сотрудников компании «Лукойл». Письма я отправлял самые простые, используя корпоративный ящик. Только после того, как мой респондент обратился в IT-службу своего предприятия, выяснилось, что данный адрес находится в блэк-листе. Попал он туда из-за каких-то ошибок, допущенных моим предшественником. Понадобилось больше недели, чтобы адрес включили в «белый список». Все это время письма, высылаемые с личного mail@yandex.ru, доходили без проблем.

Полезно: Почему не приходят письма с сайта. Пример частного случая.

Комьюнити теперь в Телеграм

Подпишитесь и будьте в курсе последних IT-новостей

Подписаться

Положительные и отрицательные сообщения SMTP-сервера

SMTP (Simple Mail Transfer Protocol) — это протокол, используемый большинством почтовых программ для отправки электронных сообщений в сети интернет. Некорректное взаимодействие между серверами, индивидуальные настройки на уровне программного обеспечения и многие другие причины приводят к появлению ошибок. В этом случае письма не доходят до получателей, возвращаются обратно или просто «пропадают». При возникновении таких ситуаций отправитель получает сообщение о наличии конкретной ошибки, отражающей SMTP-код последнего отклика сервера.

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

Первая цифра комбинации содержит информацию о качестве доставки:

  • сообщение доставлено («SMTP OK»);
  • возникла неизвестная или временная проблема («SMTP unknown»);
  • критическая ошибка («SMTP error»). 

Существует четыре варианта значений для первой цифры кода:

  • 2xx – положительный результат, есть возможность передачи следующей команды;
  • 3xx – отложенный результат, необходимо осуществление дополнительных действий;
  • 4xx – сообщение не принято, но проблема носит временный характер, и запрос может быть повторен через какое-то время; 
  • 5xx – категорический отказ выполнения команды, отправка запроса со стороны передающего сервера в том же виде невозможна. 

Вторая цифра в коде сообщает о категории ответа:

  • 0 – синтаксические ошибки; 
  • 1 – ответы на запросы информации; 
  • 2 – ошибки канала передачи; 
  • 3 и 4 – неизвестный тип ошибки;
  •  5 – статус почтовой системы.

Третья цифра дает более расширенную информацию о значении, указанном во второй цифре SMTP-ответа.

Помимо цифровой комбинации, SMTP-сообщение может содержать дополнительную текстовую информацию.

Полную информацию о кодах, их компоновке и значениях можно найти в спецификациях RFC 5321 и RFC 1893.

Следует учитывать, что SMTP-message говорит об успешном или неудачном варианте доставки именно на уровне взаимодействия почтовых серверов. Положительный ответ вовсе не означает, что ваше письмо не попало в папку «Спам».

Читайте также

Как настроить почту в Outlook

Почему письма не отправляются с электронной почты

Виды почтовых сервисов

На программном уровне существует несколько видов обработки электронной почтовой корреспонденции. К первой группе относятся виртуальные сервисы, доступные чаще всего в бесплатном исполнении через интернет-соединение на сайте почтового сервера. Это всем известные ресурсы: 

  • Gmail/Google Suite (почта от Google.com);
  • Yandex.ru;
  • Mail.ru; 
  • Rambler.ru и другие.

Более подробную информацию о значениях ответов SMTP можно получить на сайтах популярных почтовых сервисов:

  • Коды ошибок SMTP почтового сервиса Gmail (Google Suite) (support.google.com)
  • Создание и отправка писем на сервисе Яндекс
  • Ошибки отправки писем при использовании сервера и сервиса Mail.ru

Ко второй группе относятся почтовые клиенты – программы, обладающие более расширенным функционалом, чем виртуальные сервисы. Наиболее популярными и универсальными почтовыми клиентами для Windows являются:

  • Opera Mail;
  • Mozilla Thunderbird;
  • Koma-Mail;
  • SeaMonkey;
  • The Bat!;
  • Microsoft Outlook.

Принципы работы почтовых клиентов несколько отличаются от процесса обработки корреспонденции виртуальными серверами. При отправке сообщения программа отсылает его не напрямую конечному получателю, а ретранслирует через сервер-релей. Этот процесс осуществляется чаще всего с использованием протокола SMTP, а получение корреспонденции обычно происходит с помощью IMAP или POP.

Коды SMTP-ответов определяются стандартом. Администратор почтового сервера может создать собственные настройки, в том числе и в части кодировки ответов сервера. Особенно это касается локальных почтовых программ, установленных непосредственно на сервере какой-нибудь компании.

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

Чипсендер

Классификация отрицательных SMTP-сообщений. Способы решения проблем

Классификация отрицательных SMTP-сообщенийЯ настроил свою почтовую программу – локальный клиент (MS Outlook и т.п.) или бесплатную почту на gmail или yandex. Начинаю отправлять письма, но сталкиваюсь с различными проблемами, связанными с тем, что мои респонденты не получают направленную им корреспонденцию. Соответственно, на мой ящик приходят сообщения об ошибках в виде кодировок SMTP. 

Сразу опускаю тот пакет сообщений, которые начинаются с 2хх и 3хх, так как они содержат информацию о том, что задача получения письма уже решена положительно либо получит такой статус в ближайшее время. Более подробно рассмотрим некоторые виды кодированных сообщений, начинающихся с 4хх и 5хх, т.е. отклики SMTP-сервера, которые сообщают о наличии проблем.

Почтовый сервер сообщил об ошибке 421

Значение: Service Not Available. Сервер недоступен: канал связи будет закрыт.

Возможные причины

Варианты решения

Неправильно заданы параметры SMTP-соединения

Необходимо перепроверить настройки

Брандмауэр блокирует IP-адрес сервера электронной почты

Необходимо создать новое правило в брандмауэре

Блокируется трафик через порт 25

Попробуйте в настройках учетной записи электронной почты сменить номер порта SMTP на 465

Проблема использования VPN

Необходимо, чтобы провайдер услуги занес ваш почтовый сервер в белый список адресов VPN

Данная ошибка возникает наряду с грейлистингом (Greylisting «Серый список») при интенсивном использовании бесплатного SMTP-сервера, который лимитирует количество отправляемых сообщений в единицу времени. Для решения этой проблемы можно воспользоваться высоконагруженным SMTP-сервером. Чаще всего эта услуга является платной.

Получено сообщение с кодом 451

Значение: Requested action aborted: local error in processing. Требуемое действие прерывалось: ошибка в обработке.

Возможные причины

Варианты решения

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

В настройках сервера увеличить лимит или задать ограничение не на количество подключений, а на количество писем на одного пользователя. Накопившуюся очередь писем можно отправить повторно командой «force send»

Неправильно настроены MX-записи домена, из-за чего происходит неправильная маршрутизация писем

Проверьте логи, конфигурационные файлы, МХ-записи и разрешения, внесите корректировки

Устранение проблем с доставкой электронной почты для кода ошибок 451 4.7.500–699 (ASxxx) в Exchange Online. Электронная почта из доменов onmicrosoft.com ограничена и фильтруется для предотвращения спама.

Необходимо добавить настраиваемый домен.

Ошибка почтового сервера 452

Значение: Insufficient system resources. Запрашиваемое действие не выполнено: недостаточно места в системе.

Возможные причины

Варианты решения

На сервере получателя закончилось место, поэтому письмо не доставляется

Чтобы в этом убедиться, достаточно попробовать осуществить отправку письма с другого сервера

В сообщении присутствует текст «Out of memory». Это значит, что недостаточно места на вашем сервере

Необходимо проверить количество отправляемых писем в очереди, наличие свободного места на диске и объем доступной памяти

В Microsoft Exchange Server есть специальный компонент мониторинга доступных ресурсов Back Pressure, который отслеживает свободное место на диске, на котором хранятся очереди транспортной службы Exchange. При возникновении такой ошибки можно сделать следующее:

  • очистить диск от ненужных файлов;
  • отключить мониторинг Back Pressure (не рекомендуется);
  • перенести транспортную очередь на другой диск достаточного объема.

Доставка письма

Сервер сообщил об ошибке SMTP 550

Значение:  Mailbox unavailable. Требуемые действия не предприняты: электронный ящик недоступен

Возможные причины

Варианты решения

Неверно указан email-адрес получателя

Необходимо связаться с адресатом альтернативным способом и уточнить правильность написания адреса, а также убедиться, что он является действующим

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

Провести полную проверку специализированной антивирусной программой

На стороне вашего интернет-провайдера установлены ограничения на отправку исходящих сообщений

Необходимо связаться с поставщиком интернет-услуг и получить консультацию по устранению данной проблемы

Сервер получателя не работает

Отправьте тестовое письмо на другой почтовый сервер. Свяжитесь с получателем и сообщите о проблеме

Данная ошибка может возникнуть из-за настроек программы Антиспам на стороне получателя. Проверьте корректность оформления вашего письма и другие параметры, по которым ваше сообщение может быть отнесено к нежелательным.

Почтовый сервер ответил ошибкой 571

Значение:  SMTP Protocol Returned a Permanent Error 571 xxx@mail.ru prohibited. We do not relay/Spam message rejected. Ошибка на стороне получателя почты.

Возможные причины

Варианты решения

Ваш IP-адрес заблокирован на стороне конечного получателя спам-фильтром, антивирусом или файрволом

Данную проблему может решить только администратор сети получателя, исключив ваши идентификационный данные из списка блокировки или добавив их в «белый список»

Неверные учетные данные ретранслятора. У вас нет разрешения на отправку электронной почты через сервер, который находится между вами и получателем

Обратитесь к администратору данного ресурса для изменения настроек

У IP отправителя нет RDNS

Проверьте настройки получения писем и разрешения для доменов-отправителей

Как я уже писал выше, разные почтовые серверы накладывают свои ограничения на прием и отправку сообщений. Код 571 в Google Suite расшифровывается следующим образом: «Действующая политика запрещает отправку этого сообщения». Письмо может содержать защищенные или конфиденциальные данные – номера кредитных карт и т.п. Или политика администрирования запрещает отправку определенными пользователями сообщений адресатам вне установленной группы.

Сертификат почтового сервера недействителен

Предупреждение безопасности интернетаОбычно с таким сообщением приходится сталкиваться пользователям, у которых настроен Microsoft Exchange Server/MS Outlook. В данной ситуации самое простое решение – обновить сертификат.

Проверка доступности почтового сервера программным методом

В данной статье описаны лишь некоторые варианты ошибок, которые могут возникнуть при отправке электронных сообщений. Полный перечень достаточно объемен и во многом зависит от настроек конкретного сервера как на стороне отправителя, так и получателя. Некоторые из ошибок могут быть легко устранены обычным пользователем, другие под силу лишь опытным администраторам.

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

  • https://mxtoolbox.com
  • https://www.ultratools.com
  • http://mail2web.com

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

Прочитав эту статью, обратите внимание на то, как настроен ваш почтовый сервер на получение сторонних писем по SMTP-протоколу. Быть может, в данный момент ваш антиспам или локальная политика фильтрации входящих сообщений блокирует получение очень важного и нужного для вас месседжа? Проверьте сами или обратитесь к системному администратору. Если ошибку с SMTP никак не удается решить, то попробуйте обратиться в службу поддержки почтового сервера.

При установке чистого шаблона виртуальной машины Bitrix в набор предустановленного ПО не входит почтовый сервер. Это политика компании 1C Битрикс, а не хостинг-провайдера.

Чтобы настроить почту на сервер Bitrix, воспользуйтесь следующей инструкцией.

Мы рекомендуем сделать это через стороннее SMTP. Для этого ваш домен должен быть делегирован на Яндекс ПДД, Почту для домена Mail.ru или аналогичные сервисы.

1. Подключаемся к серверу по SSH и попадаем в меню Bitrix-окружения:

2. Переходим в пункты:

>> 6.Manage sites in the pool

>> 4. Change email settings on site

Далее последовательно появятся вопросы (подсказки в скобках):

Enter From email address (ex. bob@example.org)

— ваша почта.

Enter server address or DNS (127.0.0.1):

— адрес почтового сервера. Для Яндекс — smtp.yandex.ru

3. Указание порта, способа авторизации и шифрования:

Enter server port (25): 587

Do you want to use SMTP authentication on smtp.yandex.ru:587? (N|y) Y

Do you want to enable TLS for smtp.yandex.ru: 587 (n|Y)

5. В дальнейшем будет запрошен логин и пароль от почтового ящика, вводим их.

В результате будет создан файл /etc/msmtprc, в котором будут указаны внесённые настройки:

account default
logfile /home/bitrix/msmtp_default.log
host smtp.yandex.ru
port 587
from bitrix@yoursite.ru
keepbcc off
auth on
user bitrix@yoursite.ru
password YourPAssWord

tls on 
tls_certcheck off

После этого почта на сайте начнёт работать.

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

1. Устанавливаем postfix:

yum install postfix && service postfix start

2. Через меню Битрикс вносим настройки:

host 127.0.0.1
port 25
from bitrix@yoursite.ru
keepbcc off
auth off

3. Cоздаем файл лога и выставляем на него права:

touch /home/bitrix/msmtp_default.log
chown bitrix:bitrix /home/bitrix/msmtp_default.log

Пример письма, отправленного без ошибок:

Apr 28 16:06:53 host=127.0.0.1 tls=off auth=off from=bitrix@yoursite.ru 

recipients=f1rst-test@ya.ru mailsize=902 smtpstatus=250 smtpmsg='250 2.0.0 Ok: queued as 8DF4F11E1AE9' exitcode=EX_OK

Вносить изменения в настройки можно непосредственно в файл либо повторно пройти настройки через меню Битрикс.

Этот материал был полезен?


Обновлено: 23 апреля 2021


8408 просмотров

Если используется msmtp (установлен BitrixVM) и выводятся ошибки вида

<-- 550 5.7.0 Sender or From header address rejected: not owned by authorized user

Скорее всего bitrix отправляет письма, указывая отправителя в заголовке From, но msmtp их не может читать.
В таком случае можно использовать параметр —read-envelope-from.

Однако, в том же тесте системы, заголовок From не передается, как и в некоторых других ситуациях, тогда Битрикс не отправляет письма и выводит ошибки:

envelope from address extracted from mail: (null)
loaded system configuration file /etc/msmtprc
loaded user configuration file /home/bitrix/.msmtprc
falling back to default account
msmtp: account default from /home/bitrix/.msmtprc: envelope-from address is missing

Нашлось простое решение — скрипт, который смотрит, есть ли заголовок письма, если да, то запускает msmtp с параметром —read-envelope-from, иначе запускается стандартно.

Что бы избавиться от ошибки «not owned by authorized user» — создаем скрипт /usr/bin/bitrix_email.sh с содержимым:

#!/bin/bash
export HOME=/home/bitrix


[email protected]


message_body=""
while read line; do
  message_body="$message_body$linen"
done < /dev/stdin


if [[ $message_body == *"From:"* ]]; then
echo -e "$message_body" | /usr/bin/msmtp --debug -t -i --read-envelope-from $args
else
echo -e "$message_body" | /usr/bin/msmtp --debug -t -i $args
fi

Делаем скрипт запускаемым

chmod +x /usr/bin/bitrix_email.sh

Далее прописываем этот скрипт в /etc/php.d/bitrixenv.ini , если у вас bitrixVM или в ином в вашем случае

sendmail_path = /usr/bin/bitrix_email.sh

Перезапускаем php-fpm или httpd

service httpd restart

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

Буду рад, если эта статья поможет избавиться от ситуации, в которой Битрикс не отправляет письма.

Что мы знаем о настройке smtp.mail.ru?

Сайт https://help.mail.ru/mail/mailer/popsmtp сообщает следущее:

Электронный адрес Полное имя почтового ящика, включая логин, @ и домен
Сервер исходящей почты (SMTP-сервер) smtp.mail.ru
Имя пользователя Полное имя почтового ящика, включая логин, @ и домен
Пароль Пароль, который вы используете для входа в почтовый ящик
Порт SMTP — 465 (протокол шифрования SSL/TLS)
Аутентификация Обычный пароль (без шифрования)

Наша ошибка из проверки системы 1С-Битрикс.

При запуске тестирования конфигурации битрикса можно увидеть подобную картину:

Как исправить?

Для начала зайдем в нужный раздел BitrixVM, пункты 6. Manage sites in the pool => 4. Change a site’s email settings.

              Bitrix virtual appliance  version 7.3.3
                     Manage email settings

Found 2 sites:
------------------------------------------------------------------------------------
SiteName        | dbName          | Email |          Server |   TLS | From
------------------------------------------------------------------------------------
******.**       | dbb******       |     Y | smtp.mail.ru:465 |    on | info@******.**
default         | sitemanager     |     N |                 |   off | 
------------------------------------------------------------------------------------
Available actions: 
                 
           Manage email settings
        0. Previous screen or exit

Видим список сайтов, выберем интересующий нас и увидим текущие настройки:

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

Email address is configured for the site ******.**
Email address       : info@******.**
SMTP server         : smtp.mail.ru
SMTP port           : 465
SMTP login          : info@******.**
TLS status          : on

Подтвердим желание изменить настройки:

Do you want to update email settings for ******.** (N|y): y

Введем почту, от которой будут отправляться письма:

Enter From email address (ex. bob@example.org):info@******.**

Введем адрес smtp сервера Мейл-ру:

Enter server address or DNS (127.0.0.1): smtp.mail.ru

Введем рекомендуемый порт, и подтвердим наличие аутентификации:

Enter server port (25): 465

Do you want to use SMTP authentication on smtp.mail.ru:465? (N|y)y

Введем наши логин и пароль от ящика:

Enter login (info@******.**): info@******.**

Enter password: PASSWORD

Выберем и подтвердим шифрование (можно пробовать plain или оставить auto):

Available methods are plain,scram-sha-1,cram-md5,gssapi,external,digest-md5,login,ntlm

Enter SMTP authentication method (default: auto): plain

Do you want to enable TLS for smtp.mail.ru:465 (n|Y):Y

И вот он, конец настройки)

Configure email for the site ******.**

Press ENTER to exit

Все, готово. Лог ошибок по умолчанию можно посмотреть тут:

cat /home/bitrix/msmtp_******.ru.log 


Битрикс не отправляется почта или попадает в спам

Заказать сайт

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

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

Отправка тестового письма из консоли

echo "Test text" | mail -s "Test title" test@test.ru

Проверяем работу функции mail из PHP консоли Битрикс

if( mail("test@test.ru", "Subject", "Text") ){
	echo 'Успешно отправлено!'; }
else{
	echo 'Отправка не удалась!';
}

Проверяем работу сокетов

$fp = fsockopen("ssl://smtp.mail.ru", 465, $errno, $errstr, 30);
if (!$fp) 
	echo "Error: $errstr ($errno)n";
else
	echo "Connected";
fclose ($fp)

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

Идем в Настройки > Настройки продукта > Почтовые и СМС события > Почтовые шаблоны и просматриваем шаблоны. Убеждаемся, что в поле От кого стоит #DEFAULT_EMAIL_FROM#

Идем в Настройки > Настройки продукта > Настройки модулей > Главный модуль > Почта и СМС в поле Email администратора сайта (отправитель по умолчанию) вписываем правильное значение почта отправителя

На всякий случай почту можно указать еще в поле E-Mail отдела продаж: по пути Настройки > Настройки продукта > Настройки модулей > Интернет-магазин > Настройки

Email должен совпадать во всех перечисленных случаях, плюс в настройках msmtp должен быть указан именно он

msmtp config для простой отправки через mail.ru

account default
logfile /home/bitrix/.msmtp.log
host mail.bitrixsoft.com
port 25
from user@email.com
auth off

msmtp config для простой отправки через smtp mail.ru

account default
logfile /home/bitrix/msmtp_default.log
host smtp.mail.ru
port 587
from no-reply@default.ru
keepbcc off
auth on
user no-reply@default.ru
password default
tls on
tls_starttls on
tls_certcheck off

msmtp config для простой отправки через smtp yandex.ru

account default
logfile /var/log/msmtp.log
host smtp.yandex.ru
port 587
from usr@yandex.ru
keepbcc on
auth on
user usr@yandex.ru
password PAss
tls on
tls_starttls on

msmtp config для простой отправки через smtp gmail.com

account default
tls on
tls_certcheck off
auth on
host smtp.gmail.com
port 587
user YOUR_EMAIL
from YOUR_EMAIL
password YOUR_PASSWORD

msmtp config для простой отправки через smtp timeweb.ru

# smtp account configuration for default
account default
logfile /home/bitrix/msmtp_default.log
host smtp.timeweb.ru
port 465
from YOUR_EMAIL
aliases /etc/aliases
keepbcc off
auth on
user YOUR_EMAIL
password YOUR_PASSWORD

tls on
tls_starttls off
tls_certcheck off

Получаем список писем

select * from b_event
where event_name like 'SALE_NEW_ORDER'
order by date_insert desc

Значения статусов отправки писем в колонке SUCCESS_EXEC

‘Y’ — означает успешная отправка;
‘N’ или 0 — письмо не отправлено;
‘F’ — ошибка

Скрипт отправки почты через phpMailer

Устанавливаем composer

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'e0012edf3e80b6978849f5eff0d4b4e4c79ff1609dd1e613307e16318854d24ae64f26d17af3ef0bf7cfb710ca74755a') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

Устанавливаем phpMailer

composer require phpmailer/phpmailer

Если команда composer не найдена, то пытаемся установиться его глобально

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

Добавляем в init.php

require '/var/www/YOUR_SITE/vendor/autoload.php';

use BitrixMainApplication;
use PHPMailerPHPMailerPHPMailer;
use PHPMailerPHPMailerSMTP;
use PHPMailerPHPMailerException;

//Перехват генерации почтового события с возможностью его отмены
AddEventHandler("main", "OnBeforeEventAdd", array("OnBeforeEventAddClass", "OnBeforeEventAddHandler"));
class OnBeforeEventAddClass
{
    function OnBeforeEventAddHandler(&$event, &$lid, &$arFields, &$message_id, &$files)
    {
        $connection = BitrixMainApplication::getConnection('default');//Получаем соединение с БД

        //Получаем шаблон письма
        $recordset = $connection->query("select SUBJECT, MESSAGE, MESSAGE_PHP from b_event_message where ACTIVE = 'Y' AND EVENT_NAME = '".$event."'")->fetchAll();
        $fields = $arFields;

        AddMessage2Log($arFields, "arFields");

        if(isset($recordset[0]['MESSAGE'])){//Проверяем есть ли шаблон
            $mask = $recordset[0]['MESSAGE'];
            $subject = $recordset[0]['SUBJECT'];

            foreach ($fields as $key => $value){
                if(!is_array($value) && strpos($key, '~') === false){//Исключаем из замены массивы и символы ~
                    //Заменяем все возможные паттерны
                    $mask = preg_replace('~#'.$key.'#~', $value, $mask);
                    $subject = preg_replace('~#'.$key.'#~', $value, $subject);
                }
            }

            $mask = preg_replace('~#SITE_NAME#~', COption::GetOptionString("main", "site_name", $GLOBALS["SERVER_NAME"]), $mask);
            $mask = preg_replace('~#SERVER_NAME#~', COption::GetOptionString("main", "server_name", $GLOBALS["SERVER_NAME"]), $mask);
            $mask = preg_replace('~#DEFAULT_EMAIL_FROM#~', COption::GetOptionString("main", "email_from", "admin@".$GLOBALS["SERVER_NAME"]), $mask);

            $subject = preg_replace('~#SITE_NAME#~', COption::GetOptionString("main", "server_name", $GLOBALS["SERVER_NAME"]), $subject);
            $subject = preg_replace('~#SERVER_NAME#~', COption::GetOptionString("main", "server_name", $GLOBALS["SERVER_NAME"]), $subject);


            if($mask) {//Ести тело сформировано, то запускаем отправку
                if(isset($fields['RS_USER_EMAIL'])){
                    if (filter_var($fields['RS_USER_EMAIL'], FILTER_VALIDATE_EMAIL)) {
                        $email = $fields['RS_USER_EMAIL'];
                    }
                }

                if(isset($fields['EMAIL'])){
                    if (filter_var($fields['EMAIL'], FILTER_VALIDATE_EMAIL)) {
                        $email = $fields['EMAIL'];
                    }
                }

                if(isset($fields['EMAIL_RAW'])){
                    if (filter_var($fields['EMAIL_RAW'], FILTER_VALIDATE_EMAIL)) {
                        $email = $fields['EMAIL_RAW'];
                    }
                }

                if(isset($fields['EMAIL_BUYER'])){
                    if (filter_var($fields['EMAIL_BUYER'], FILTER_VALIDATE_EMAIL)) {
                        $email = $fields['EMAIL_BUYER'];
                    }
                }

                if(isset($fields['EMAIL_TO'])){
                    if (filter_var($fields['EMAIL_TO'], FILTER_VALIDATE_EMAIL)) {
                        $email = $fields['EMAIL_TO'];
                    }
                }


                if(!$email){
                    $email = 'default@email.ru';
                }

                if($email && filter_var($email, FILTER_VALIDATE_EMAIL)){
                    $cl = new OnBeforeEventAddClass;
                    if($cl->custom_mail($email, $subject, $mask,'','')){//Отправляем письмо
                        //AddMessage2Log($event, "Сообщение было отправлено");
                    }else{
                        //AddMessage2Log($event, "Ошибка. Сообщение отправлено не было");
                    }
                }else{
                    //AddMessage2Log($event, "Ошибка. Почта не найдена. Почта:");
                }

                return false;

            }else{
                //AddMessage2Log($event, "Ошибка. Нет тела письма");
            }
        }else{
            //AddMessage2Log($event, "Ошибка. Не найден шаблон письма");
        }

    }

    public function custom_mail($to, $subject, $message, $additionalHeaders = '', $additional_parameters)
    {
        // Instantiation and passing `true` enables exceptions
        $mail = new PHPMailer(true);

        $mail->IsSMTP(true); // enable SMTP
        $mail->SMTPDebug = 3;  // debugging: 1 = errors and messages, 2 = messages only
        $mail->SMTPAuth = true;  // authentication enabled
        $mail->SMTPSecure = 'ssl'; // secure transfer enabled REQUIRED for GMail
        $mail->Host = 'smtp.gmail.com';
        $mail->Port = 465;               // set the SMTP port for the GMAIL server

        $mail->Username = 'email'; // SMTP username
        $mail->Password = 'password'; // SMTP password

        $mail->CharSet = 'UTF-8';

        $mail->addAddress($to);
        $mail->setFrom('default@email.ru');

        //Set the subject line
        $mail->Subject = $subject;

        //Read an HTML message body from an external file, convert referenced images to embedded,
        //convert HTML into a basic plain-text alternative body
        $mail->msgHTML($message);

        //Replace the plain text body with one created manually
        $mail->AltBody = 'This is a plain-text message body';

        $d_message='';
        //preg_match('/From: (.+)n/i', $additionalHeaders, $matches);
        //list(, $from) = $matches;
        $from = 'admin@YOUR_SITE';
        $d_message.='$from - '.$from.' +++ '; $d_message.='$to - '.$to.' +++ ';
        $d_message.='$subject - '.$subject.' +++ ';
        $d_message.='$message - '.$message.' +++ ';
        $mail->setFrom($from);
        $mail->addAddress($to, ''); // Add a recipient

        //$mail->addReplyTo($from, '');
        //$mail->AddBCC($from);
        //$mail->addAttachment('/var/tmp/file.tar.gz'); // Add attachments
        //$mail->addAttachment('/tmp/image.jpg', 'new.jpg'); // Optional name

        $mail->Subject = $subject;

        if($message != strip_tags($message)) {
            $mail->isHTML(true);
        }

        $mail->Body = $message;
        // $mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

        if(!$mail->send()) {
            AddMessage2Log($mail->ErrorInfo, "Mailer Error");
            return false;
        } else {
            return true;
        }
    }
}


//Перехват письма непосредственно перед отправкой
AddEventHandler('main', 'OnBeforeEventSend', Array("OnBeforeEventSendClass", "my_OnBeforeEventSend"));
class OnBeforeEventSendClass
{
    function my_OnBeforeEventSend($arFields, $arTemplate)
    {

        //получим сообщение

    }
}

Для отправки писем с помощью phpMailer через smtp.mail.ru конфиг должен быть следующего вида:

$mail = new PHPMailerPHPMailerPHPMailer(true);

$mail->IsSMTP(true); // enable SMTP
$mail->SMTPDebug = 1;  // debugging: 1 = errors and messages, 2 = messages only
$mail->SMTPAuth = true;  // authentication enabled
$mail->SMTPSecure = 'ssl'; // secure transfer enabled REQUIRED for GMail
$mail->Host = 'ssl://smtp.mail.ru';
$mail->Port = 465;               // set the SMTP port for the GMAIL server

$mail->Username = 'USER_NAME'; // SMTP username
$mail->Password = 'USER_PASSWORD'; // SMTP password

Отладка через AddMessage2Log

В файле dbconn.php добавьте строчку define("LOG_FILENAME", $_SERVER["DOCUMENT_ROOT"]."/log.txt");

cannot connect to localhost, port 25: Connection refused

После установки чистого битрикс окружения достаточно часто вижу эту ошибку. Чтобы исправить — используйте postfix

yum install postfix
service postfix start
chkconfig postfix on

the server sent an empty reply в логе msmtp

Добавьте в конфиг

tls_starttls off

Борьба с ошибками

Если вы пытаетесь отправить почту через smtp компании Google и получаете ошибку вида SMTP connect() failed, то зайдите в аккаунт гугл с которого отправляете почту. Откройте настройки, перейдите во вкладку Безопасность, найдите пункт «Ненадежные приложения, у которых есть доступ к аккаунту», перейдите в него и разрешите доступ небезопасным приложениям (ссылка)

Боремся с ошибкой Mail command not found

yum install sendmail
yum -y install mailx
service sendmail start

Перевод агентов на крон

Правим файл /bitrix/php_interface/dbconn.php

Иногда требуется закомментировать строки подключения поддержки крона

define('BX_CRONTAB', true);
define('BX_CRONTAB_SUPPORT', true);

Перейдите на страницу Настройки > Инструменты > Командная PHP-строка и исполните следующий код:

COption::SetOptionString("main", "agents_use_crontab", "Y");
echo COption::GetOptionString("main", "agents_use_crontab", "N");

Откроем настройки крон

crontab -u bitrix -e или crontab -e

Добавим запись:

*/1 * * * *  php -f /home/bitrix/www/bitrix/modules/main/tools/cron_events.php >/dev/null 2>&1

Перезагружаем cron

systemctl restart crond.service

Настройки cron хорошо описаны в документации

Более подробно можно изучить вопрос в официально документации:

  • Настройка почты на VMBitrix
  • Дополнительные настройки и отладка msmtp

Теги:

1С Битриксphp

РЕЦЕПТ: Настройки почты в BitrixVM 5.0.44

Цитата
Денис Диденко пишет:
SegFault 99% дает APC, можно просто использовать другой кеш
Если не решите проблему — обращайтесь, руками бы посмотреть, так не понятно что происходит.
Цитата
Надежда Неверова пишет:
В-общем, уведомления заработали, когда я сделала следующее:
1) Перевела ВСЕ агенты на крон. http://dev.1c-bitrix.ru/learning/course/?COURSE_ID=43&LESSON_ID=2943
2) закомментировала в файле кронтаба строку

* * * * *bitrix test -f /home/bitrix/www/bitrix/modules/main/tools/cron_events.php && < /usr/bin/php -f /home/bitrix/www/bitrix/modules/main/tools/cron_events.php ; >>/dev/null 2>&1
и поставила свою из инструкции
*/1 * * * * bitrix /usr/bin/php -f /home/bitrix/www/bitrix/php_interface/cron_events.php

2) Сменила права на конфигурационный файл .msmtprc на 644
3) Скопировала конфигурационный файл /home/bitrix/.msmtprc в папку /etc/. Команда:

cp /home/bitrix/.msmtprc /etc/msmtprc

Я всё оставил как есть по дефолту, то есть
— агенты итак были на крон
— ничего не правил в строке запуска крона, который добавил через «Масштабирование»
— не менял права на конфигурационный файл

Единственное, поставил symlink из /home/bitrix/.msmtpr в /etc/msmtprc вместо копирования.

Цитата
ZiXO.ru пишет:
Наверняка стоит упомянуть для тех, кто в поисках проблем с почтой попадёт в эту ветку, что с 16.09.2014 Яндекс (и @yandex.ru, и ПДД) перестал принимать почту без шифрования. А для отправки почты на 465 порт, postfix, например, настраивается только с большим бубном.

В общем как оказалось достаточно указать в main.cf нужный порт и добавить директиву smtp_use_tls = yes

Цитата
Алексей Комсомоленко пишет:
выложите рабочий .msmtprc

# smtp account configuration for default
account default
logfile /home/bitrix/msmtp_default.log
host smtp.yandex.ru
port 25
from user@host.ru
keepbcc on
auth on
user user@host.ru
password *******
tls on
tls_certcheck off

вот с этим у меня работает, конечно user@host.ru надо на вашего поменять и пароль не звездочки а действующий пароль от юзера, плюс важный момент под юзером от которого будете слать почту обязательно надо зайти первый раз и заполнить все данные профиля иначе как ни юзай почту не заработает без персональных данных.

Два года использования pdd.yandex.ru с почтой в нескольких доменах, 50 аккаунтов, через полгода пришлось отказаться от использования почтовых программных клиентов — отказы в работе служб smtp, pop, imap длительностью от нескольких минут до пары часов были почти еженедельно, при этом почта была доступна через веб и принималась серверами яндекса при отсылке напрямую.

По моему глубокому убеждению, в случае использования BitrixEnv/BitrixVM самый надежный и беспроблемный в дальнейшем способ организовать работу почты — это настройка postfix с отправкой почты напрямую, с DKIM и SPF записями в зоне домена от имени которого почта отправляется. Могу написать пошаговую инструкцию как это все настроить, при явной потребности сообщества в сем.

Цитата
Олег Шамаев пишет:
Могу написать пошаговую инструкцию как это все настроить,
Цитата
Олег Шамаев пишет:
Могу написать пошаговую инструкцию как это все настроить, при явной потребности сообщества в сем.
Цитата
Алексей Косоротов пишет:

— не менял права на конфигурационный файл

Единственное, поставил symlink из /home/bitrix/.msmtpr в /etc/msmtprc вместо копирования.

Цитата
Олег Шамаев написал:
Могу написать пошаговую инструкцию как это все настроить, при явной потребности сообщества в сем.

добрый день! подскажите, пожалуйста. установила vmplayer, на него свежую версию машины и корп портал.
пытаюсь прописать почту через управление масштабированием, указываю реальный емейл и его настройки (пробовала гугл и мейл), но каждый раз как нажимаю начать выдается ошибка:
Options SMTPHost= EmailAddress= are mandatory
Соответственно, тест системы или конфигурации тоже выдает ошибку, что почта не работает.
Через управление сайтом в консоли настройки заданы, но не работает почему-то

Проблема еще в том, что я не знаток линукс-систем)
Если выполняю на портале php-скрипт для проверки (настройки почты сохранены через консоль), то портал намертво повисает

Источник

РЕЦЕПТ: Настройки почты в BitrixVM 5.0.44

Цитата
Денис Диденко пишет:
SegFault 99% дает APC, можно просто использовать другой кеш
Если не решите проблему — обращайтесь, руками бы посмотреть, так не понятно что происходит.
Цитата
Надежда Неверова пишет:
В-общем, уведомления заработали, когда я сделала следующее:
1) Перевела ВСЕ агенты на крон. http://dev.1c-bitrix.ru/learning/course/?COURSE_ID=43&LESSON_ID=2943
2) закомментировала в файле кронтаба строку

* * * * *bitrix test -f /home/bitrix/www/bitrix/modules/main/tools/cron_events.php && < /usr/bin/php -f /home/bitrix/www/bitrix/modules/main/tools/cron_events.php ; >>/dev/null 2>&1
и поставила свою из инструкции
*/1 * * * * bitrix /usr/bin/php -f /home/bitrix/www/bitrix/php_interface/cron_events.php

2) Сменила права на конфигурационный файл .msmtprc на 644
3) Скопировала конфигурационный файл /home/bitrix/.msmtprc в папку /etc/. Команда:

cp /home/bitrix/.msmtprc /etc/msmtprc

Я всё оставил как есть по дефолту, то есть
— агенты итак были на крон
— ничего не правил в строке запуска крона, который добавил через «Масштабирование»
— не менял права на конфигурационный файл

Единственное, поставил symlink из /home/bitrix/.msmtpr в /etc/msmtprc вместо копирования.

Цитата
ZiXO.ru пишет:
Наверняка стоит упомянуть для тех, кто в поисках проблем с почтой попадёт в эту ветку, что с 16.09.2014 Яндекс (и @yandex.ru, и ПДД) перестал принимать почту без шифрования. А для отправки почты на 465 порт, postfix, например, настраивается только с большим бубном.

В общем как оказалось достаточно указать в main.cf нужный порт и добавить директиву smtp_use_tls = yes

Цитата
Алексей Комсомоленко пишет:
выложите рабочий .msmtprc

# smtp account configuration for default
account default
logfile /home/bitrix/msmtp_default.log
host smtp.yandex.ru
port 25
from user@host.ru
keepbcc on
auth on
user user@host.ru
password *******
tls on
tls_certcheck off

вот с этим у меня работает, конечно user@host.ru надо на вашего поменять и пароль не звездочки а действующий пароль от юзера, плюс важный момент под юзером от которого будете слать почту обязательно надо зайти первый раз и заполнить все данные профиля иначе как ни юзай почту не заработает без персональных данных.

Два года использования pdd.yandex.ru с почтой в нескольких доменах, 50 аккаунтов, через полгода пришлось отказаться от использования почтовых программных клиентов — отказы в работе служб smtp, pop, imap длительностью от нескольких минут до пары часов были почти еженедельно, при этом почта была доступна через веб и принималась серверами яндекса при отсылке напрямую.

По моему глубокому убеждению, в случае использования BitrixEnv/BitrixVM самый надежный и беспроблемный в дальнейшем способ организовать работу почты — это настройка postfix с отправкой почты напрямую, с DKIM и SPF записями в зоне домена от имени которого почта отправляется. Могу написать пошаговую инструкцию как это все настроить, при явной потребности сообщества в сем.

Цитата
Олег Шамаев пишет:
Могу написать пошаговую инструкцию как это все настроить,
Цитата
Олег Шамаев пишет:
Могу написать пошаговую инструкцию как это все настроить, при явной потребности сообщества в сем.
Цитата
Алексей Косоротов пишет:

— не менял права на конфигурационный файл

Единственное, поставил symlink из /home/bitrix/.msmtpr в /etc/msmtprc вместо копирования.

Цитата
Олег Шамаев написал:
Могу написать пошаговую инструкцию как это все настроить, при явной потребности сообщества в сем.

добрый день! подскажите, пожалуйста. установила vmplayer, на него свежую версию машины и корп портал.
пытаюсь прописать почту через управление масштабированием, указываю реальный емейл и его настройки (пробовала гугл и мейл), но каждый раз как нажимаю начать выдается ошибка:
Options SMTPHost= EmailAddress= are mandatory
Соответственно, тест системы или конфигурации тоже выдает ошибку, что почта не работает.
Через управление сайтом в консоли настройки заданы, но не работает почему-то

Проблема еще в том, что я не знаток линукс-систем)
Если выполняю на портале php-скрипт для проверки (настройки почты сохранены через консоль), то портал намертво повисает

Источник

Ошибка отправки почты

Используем BitrixENV. Согласно меню по пунктам 6, 4, настроено использование SMTP Яндекса.
Проверка системы в панели управления успешно отправляет сообщения, сообщения больше 64 Кб, и
рапортует об исправном выполнении агентов.

Просьба к знающим специалистам, подскажите где возможно еще подправить настройки,
чтобы в почтовые шаблоны правильно подгружались адреса «От кого» и «Кому»

Системные сообщения возвращают ошибку:

Обращался в поддержку почты Яндекса, они сказали, что почта не уходит, потому что
«От кого» и «Кому» некорректно указано

from=bitrix recipients=bitrix

Почтовое событие «Новый заказ»
Почтовый шаблон «Новый заказ»
Указываю адрес отправки #DEFAULT_EMAIL_FROM#
Адрес получателя #SALE_EMAIL#
Адрес отправителя в настройках главного модуля совпадает с адресом аккаунта в настройках почтовой системы.
Использую SMTP сервер Яндекса.

В логах cron исправно выполняется ежеминутно задание, как описано в статье
«Запуск агентов из cron -> Обобщенное решение»

Откуда он берет данные для отправки «От кого» — bitrix? И отправки «Кому» — bitrix

Спасибо за помощь,

Цитата
Ярослав Хлебников написал:
from=bitrix recipients=bitrix
Цитата
Ярослав Хлебников написал:
from=bitrix recipients=bitrix

Это больше похоже на email сообщение по результатам запуска cron-скриптов.
https://serverfault.com/questions/133058/how-to-send-the-output-from-a-cronjob-to-multiple-e-mail-addresses

События для выполнения указаны в скрипте, который должен запуститься.

CAgent::CheckAgents();
define(«BX_CRONTAB_SUPPORT», true);
define(«BX_CRONTAB», true);
CEvent::CheckEvents();

Вот здесь говорится:

«Проверить Агенты» и «Проверить события»

У меня настроены почтовые события
«Новый заказ»
«Новый быстрый заказ»

Для которых в настройке «Почтовых событий» в закладке «Шаблоны» указаны привязанные шаблоны.
Данные шаблоны имеют статус Active, привязку к сайту S1 и заполнены поля адресом отправителя и адресом получателя.

Это достаточные условия для получения системой сигнала об отправке почтового события,
оформленного почтовым шаблоном.
Таким образом, устанавливая работоспособность почтовой системы, а это проверенный факт,
в логах сразу пишется, когда идет «Проверка системы», отправка проверочного письма на bitrixsoft

И в окне выполнения скриптов PHP функция mail(); успешно отправляет сообщение, которое успешно доставляется.

Значит, почтовая система работает, события и агенты проверяются по Cron заданию, активные почтовые события выполняются
и почтовые шаблоны обязаны формировать письмо для отправки с полями «От кого» и «Кому» ибо таковые заполнены.

Источник

Настройка почты на VM Bitrix

При установке чистого шаблона виртуальной машины Bitrix в набор предустановленного ПО не входит почтовый сервер. Это политика компании 1C Битрикс , а не хостинг-провайдера.

Чтобы настроить почту на сервер Bitrix, воспользуйтесь следующей инструкцией.

Мы рекомендуем сделать это через стороннее SMTP . Для этого ваш домен должен быть делегирован на Яндекс ПДД, Почту для домена Mail.ru или аналогичные сервисы.

1. Подключаемся к серверу по SSH и попадаем в меню Bitrix-окружения:

2. Переходим в пункты:

Далее последовательно появятся вопросы (подсказки в скобках):

— адрес почтового сервера. Для Яндекс — smtp.yandex.ru

3. Указание порта, способа авторизации и шифрования:

5. В дальнейшем будет запрошен логин и пароль от почтового ящика, вводим их.

В результате будет создан файл /etc/msmtprc , в котором будут указаны внесённые настройки:

После этого почта на сайте начнёт работать.

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

1. Устанавливаем postfix :

2. Через меню Битрикс вносим настройки:

3. Cоздаем файл лога и выставляем на него права:

Пример письма, отправленного без ошибок:

Вносить изменения в настройки можно непосредственно в файл либо повторно пройти настройки через меню Битрикс.

Источник

РЕЦЕПТ: Настройки почты в BitrixVM 5.0.44

Приветствую. Настроили наконец то почту на виртуальной машине.

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

Авторизуемся под root

Жмем 6
И видим что то подобное. Если у вас на сервере 1 сайт, то у вас будет только 1 kernel sites: default

И по шагам делаем следующее:

  1. Вводим Enter from adress — это адрес по умолчанию с которого будут приходить все электронные письма с сайта. Жмем Enter после ввода email адреса.
  2. Enter server address or DNS — это IP адрес сервера или DNS. Для текущего сервера я оставил пустым (тоесть по умолчанию будет использоваться значение указанное в скобках). Жмем Enter.
  3. Enter server port — тут можно жать сразу Enter если у вас почта без шифрования (порт по умолчанию 25). Для шифрования указываете 443.
  4. Do you need auth options for — Нужна ли вам авторизация на SMTP сервере. Если у вас только отправляются уведомления с сервера то жмете N .
  5. Do you need TLS enabled for — Включить ли TLS. Я не включал, так как с включенным TLS поста у меня не приходила.
  6. В конце жмете Enter и проверяете работает ли почта. Я проверял через уведомления с сайта.

Получиться в итоге должно что то подобное:

Но там описан процесс для BitrixVM 4.3 и не все актуально.

И да я все почтовые события переложил на крон.
Инструкция от техподдержки из курса: http://dev.1c-bitrix.ru/learning/course/?COURSE_ID=43&LESSON_ID=2943

Получилось как то так

Столкнулся с таким нюансом в ВМ, при установке последних обновлений ВМ перестает работать отправка уведомлений, если для 4,3 достаточно было установить через стандартное меню Битрикса
Server SMTP: localhost
port: 25
адрес ящика с которого отсылать: в моём случае bitrix@адрес портала
авторизация: n(Нет)
tsl: n(Нет)

то в 5,0,44 необходимо теперь каждому сайту в отдельности через модуль масштабирования настраивать почту отдельно. Зачем было усложнять не совсем понятно, хотелось бы комментария по этому поводу.

Но самое печальное что мне в этом всем не нравиться так это хранение паролей от почты в открытом виде в файле /home/bitrix/.msmtprc так как даже у пользователя bitrix получается есть к нему доступ, и давая кому то доступ на редактирование я получается свечу и пароли от почты, что лично меня категорически не устраивает.

Метод неплохой. Сам такими настройками пользовался долгое время.
Пока почта не перестала работать. Грешил на всё подряд. Причём по логам всё уходит. Помогло только смена ip адреса сервера.
Как можно догадаться, нас блочил сам яндекс.

У меня почта домена на яндексе и обычные настройки не помогали.

Всё заработало, но когда я тестил следующим скриптом:

Компания СКАУТ , вы уверены что все работает? У нас на корпортале, свежеустановленном на виртуальной машине 5.0.44 при таких же настройках уходят только приглашения на портал, а вот _уведомления пользователям_ о задачах и комментариях не уходят.

При этом проверку системы проходим на ура, все зелененькое. Разумеется, кроме интеграции с Windows, которая нам пока не нужна.

Если у Вас отправляются любые сообщения, то почта у вас настроена правильно.

Часть сообщений активируется в почтовых шаблонах «/bitrix/admin/message_admin.php?lang=ru»
Но это уже явно другая тема.

Что касается, уведомлений о задачах и комментариях, то полноценно их считайте, что нет.

Цитата
Денис Диденко пишет:
Надежда Неверова , у вас крон работает? Периодические агенты работают на кроне, если он не отрабатывает то часть писем не будет уходить.

Поддержка крона в dbconn.php включена:
define(‘BX_CRONTAB_SUPPORT’, true);

А в виртуальной машине в файле кронтаба сразу имеется нужная инструкция для ежеминутного выполнения cron_events.php
В таблице b_events если поменять статус неушедших сообщений с F на N (типа они новые и нужно их отправить), через полминуты снова становится F.

При этом если поменять данные при настройке почты. Например, не 127.0.0.1 а свою почтовую учетную запись на стороннем сервере (из под которой после танцев с бубнами все уходило на 5.0.37), то проверка системы перестает проходиться.

А также если прямо с сервера пытаться отправить письмо:

php -r «mail(‘dir@maystudio.ru’, ‘Test’, ‘Test’);»

то получаем такое:
msmtp: account default not found: no configuration file available

Если же скопировать конфигурационный файл .msmtprc в папку /etc/ (т.е. сделать общим для всех учеток данного сервера),
то при попытке отправить письмо с сервера, получаем 550 Disabled.

В-общем я снова прохожу все эти стадии, как и с 5.0.37

Одно пока радует

/etc/httpd/logs/error_log чистый, без ошибок Segmentation fault

Посмотрим, что будет при большей нагрузке и активности пользователей

В прошлый раунд пришлось обратиться к специалисту, который сказал, что была какая-то проблема С ДОСТУПОМ К ФАЙЛАМ. К сожалению, не знаю, к каким именно файлам и какого пользователя, root или bitrix. Хотя, скорее всего, bitrix?
После решения проблемы с доступом к файлам на 5.0.37, почта стала уходить любая из-под любой почтовой учетки.

Вот сейчас пытаюсь найти проблему после установки 5.0.44. Я бы и не трогала ничего, только падения апача с Segmentation fault замучили, а на 5.0.44 вроде бы должно работать стабильнее. Мне так сказали в другой теме.

Цитата
Надежда Неверова пишет:

А также если прямо с сервера пытаться отправить письмо:

php -r «mail(‘dir@maystudio.ru’, ‘Test’, ‘Test’);»

то получаем такое:
msmtp: account default not found: no configuration file available

Дико извиняюсь, пыталась отправить из под пользователя root (окошко попутала)
Функция mail работает.

Наверно, все же у меня что-то с настройками крона.

Надежда, Вам необходимо указать параметры работы с почтой из административной панели модуля «Управление масштабированием».

Если вы укажете локальный сервер отправки (localhost или 127.0.0.1), то проверка системы будет показывать, что почта работает, тк msmtp соединяется с локальным отправщиком, и ошибки уже нужно смотреть в его логах (чаще всего они говорят о том, что отправитель From неверный или принимающая сторона не может авторизовать корректно ваш сервер и выдает 550 — что тоже все пишется в логах).

Если Вы укажите сторонний smtp сервер (например mail.ru), и проверка на отправку почты не будет проходить, смело смотрите логи msmtp отправщика, обычно проблемы с неправильной настройкой параметров подключения к стороннему smtp.

Дополнительно, если у вас почта отправляется через сторонний smtp сервер, но часть сообщений не доходят до адресатов, также смотрите логи, и скорее всего у вас не совпадают адреса отправителя в почтовых шаблонах с адресом отправителя в настройках msmtp

Таким образом, VM 5.0.44 стала только гибче.

Цитата
Антон Кисляков пишет:
чаще всего они говорят о том, что отправитель From неверный или принимающая сторона не может авторизовать корректно ваш сервер и выдает 550

Я везде в почтовых шаблонах (еще в прошлый раз при настройке на 5.0.37 проставила #DEFAULT_EMAIL_FROM#)
#DEFAULT_EMAIL_FROM# у нас равен отправителю в настройках msmtp
В прошлый раз после танцев с бубном все заработало.
Танцы с бубном заключались в том, что нашли какую-то проблему с доступом к файлам.

Цитата
Антон Кисляков пишет:
тк msmtp соединяется с локальным отправщиком, и ошибки уже нужно смотреть в его логах

Как зовут локального отправщика, где он лежит? спасибо. Мы не планируем его использовать, но сейчас он нужен мне для диагностики.
Поискала самостоятельно при помощи grep в конфиг файлах php и апача, чего-то не нашла ничего))).

Вот что нашла сегодня я:

Я сделала вывод работы крона в лог, получила следующее в логе:
msmtp: account default not found: no configuration file available

Msmtp не может найти конфиг файл для пользователя bitrix, хотя он абсолютно точно есть, Мы же его через меню шелла настроили.
В прошлом раунде настройки почты (на 5.0.37) все было так же.

]$ ls -l -a
total 112
drwx——. 3 bitrix bitrix 4096 Aug 16 14:18 .
drwxr-xr-x. 4 root root 4096 Aug 16 11:26 ..
-rw——- 1 bitrix bitrix 92 Aug 16 13:35 .bash_history
-rw-r—r—. 1 bitrix bitrix 18 Jul 18 2013 .bash_logout
-rw-r—r—. 1 bitrix bitrix 176 Jul 18 2013 .bash_profile
-rw-r—r—. 1 bitrix bitrix 124 Jul 18 2013 .bashrc
-rw-rw-r— 1 bitrix bitrix 72022 Aug 16 14:26 bx_log_2014_08_16.log
-rw-rw-r— 1 bitrix bitrix 0 Aug 16 14:46 cron_event.log
-rw-rw-r— 1 bitrix bitrix 3320 Aug 16 14:29 msmtp_default.log
-rw——- 1 bitrix bitrix 834 Aug 16 13:53 .msmtprc
drwxrwx—. 23 bitrix bitrix 4096 Aug 16 11:52 www

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

Источник

Понравилась статья? Поделить с друзьями:
  • Command line options syntax error type command for help
  • Command line option syntax error type command for help как исправить
  • Command line option syntax error type command for help windows 7 что делать
  • Command line option syntax error type command for help directx
  • Command line error too short switch