Настройка отправки почты в Битриксе через SMTP протокол

Преимущества отправки почты через SMTP

SMTP (англ. Simple Mail Transfer Protocol) – это протокол передачи почты. Он обеспечивает простую передачу почтовых отправлений. Его основная задача — отправка и контроль исходящих сообщений.

Преимущества использования SMTP-сервера:

  • Отправка большого количества сообщений без ограничений виртуального хостинга;
  • Безопасная передача сообщений с большей вероятностью их попадания в папку «Входящие», вместо «Спам»;
  • Фильтрация сообщений на вероятность наличия вирусов или спама;
  • Повышенная безопасность за счет авторизации пользователя, использующего SMTP-сервер.
Подключение и настройка SMTP в Битриксе

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

Есть четыре бесплатных модуля SMTP и два платных. По отзывам из бесплатных наиболее устойчивый и работоспособный — модуль SMTP от студии ВебПростор.

Установка модуля «Отправка почты через SMTP»

Для установки модуля SMTP требуется наличие модуля «Ядро для модулей» (будет предложено добавить в процессе установки) и не должно быть ошибок при работе с сокетами (Настройки/Инструменты/Проверка системы).

Настройка модуля «Отправка почты через SMTP»

Модуль гарантированно взаимодействует с сервисами:

smtp.yandex.ru — для Яндекс.Почта,
smtp.gmail.com — для Gmail
smtp.mail.ru — для Mail.ru

А также с нашим хостингом для Битрикс.

Укажите соединения для выбранного сервиса в настройках SMTP:

Укажите настройки для авторизации, если требуется:

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

Не забудьте включить модуль на вкладке «Общие настройки»:

Вы можете указать настройки для автоматического создания или удаления файла init. php для сайтов.

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

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

Проверка отправки писем через модуль «Отправка почты через SMTP»

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

Если есть ошибки, система уведомит об этом:

Ошибки можно посмотреть в журнале операций, если активированы соответствующие настройки:

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

На этом установка и настройка модуля SMTP закончена.

 

Как проверить работу функции mail()? — База знаний WebAsyst

Помощь » База знаний » Общие вопросы » Полезная информация для владельцев скриптов »

Для проверки работоспособности PHP-функции mail() создайте тестовый PHP-файл (например, testmail.php) следующего содержания:

<?php
$message = '';
if (isset($_POST['email']) && !empty($_POST['email'])){
  if (mail($_POST['email'], $_POST['subject'], $_POST['body'], '')){
    $message = "Email has been sent to <b>".$_POST['email']."</b>.<br>";
  }else{
    $message = "Failed sending message to <b>".$_POST['email']."</b>.<br>";
  }
}else{
  if (isset($_POST['submit'])){
    $message = "No email address specified!<br>";
  }
}

if (!empty($message)){
  $message . = "<br><br>n";
}
?>
<html>

  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>
      Mail test
    </title>
  </head>
  <body>
    <?php echo $message; ?>
    <form method="post" action="">
      <table>
        <tr>
          <td>
            e-mail
          </td>
          <td>
            <input name="email" value="<?php if (isset($_POST['email'])
            && !empty($_POST['email'])) echo $_POST['email']; ?>">
          </td>
        </tr>
        <tr>
          <td>
            subject
          </td>
          <td>
            <input name="subject">
          </td>
        </tr>
        <tr>
          <td>
            message
          </td>
          <td>
            <textarea name="body"></textarea>
          </td>
        </tr>
        <tr>
          <td>
            &nbsp;
          </td>
          <td>
            <input type="submit" value="send" name="submit">
          </td>
        </tr>
      </table>
    </form>
  </body>
</html>

Загрузите созданный файл в директорию сервера, доступную по HTTP-протоколу (public_html, www, htdocs или другую в зависимости от конфигурации сервера).

Запустите файл, набрав его адрес (URL) в адресной строке браузера, например: http://domain.ru/testmail.php.

Введите в поля открывшейся страницы адрес электронной почты, тему и текст проверочного сообщения и нажмите на кнопку «send», чтобы отправить сообщение.

В случае успешной отправки на странице появится сообщение вида «Email has been sent to …». В противном случае появится сообщение вида «Failed sending message to…».

Если отправить письмо с помощью такого проверочного файла не удалось, обратитесь к системному администратору с просьбой настроить функцию mail() на вашем сервере.

Совет: ознакомьтесь также со статьей о диагностике отправки почтовых сообщений приложениями WebAsyst.

PHP: Проверить, кто читал отправленное письмо?

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

Обнаружение ? или .php (или другое скриптовое/бинарное расширение) внутри тега изображения было бы тривиально для меня как постулированного программиста «убийцы спама»… так же, как идентификация изображения 1×1 было бы…

Я провел 2,5 года в качестве Национальный директор по цифровым технологиям президентской кампании, собравшей 20 миллионов долларов еще до того, как у нас появился кандидат — вот что я разработал для этой кампании:

  1. Во время отправки (или раньше) сгенерируйте хеш для адреса электронной почты TO: и сохраните его в базе данных рядом с адресом электронной почты. адрес.

  2. Используйте только что сгенерированный хэш, чтобы изменить небольшой, но отчетливо видимый логотип в электронном письме, и сделайте копию логотипа с хешем в имени файла логотипа, например: emxlogox.0FAE7E6.png — обратитесь к этому уникальному изображению в электронная почта для логотипа — сделайте копию логотипа с именем хеша в имени файла. Эта конкретная серия логотипов появляется только в целевых массовых электронных письмах.

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

  3. Проанализируйте журналы на наличие запрошенного логотипа и извлеките хэш из имени файла, чтобы сопоставить его с одним адресом электронной почты. И ваша программа синтаксического анализа также может получить IP-адрес и дельту времени, которая потребовалась им, чтобы получить и открыть электронную почту, чтобы вы могли определить получателей с высокой скоростью отклика и тех, которым потребовалась неделя, чтобы открыть электронную почту. Выполните географический поиск по IP-адресу и посмотрите, совпадает ли он с уже имеющимся у вас местоположением, и/или начните записывать их схемы передвижения (или схемы использования прокси-серверов).

    Географические дельты также могут идентифицировать переадресацию электронной почты.

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

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

Вы также можете попросить их щелкнуть правой кнопкой мыши логотип в электронном письме и сохранить его, не меняя имени файла, а затем опубликовать его «куда угодно» (на изображении должна быть запоминающаяся, читаемая, содержательная короткая ссылка, а не нечитаемый бит). .ly короткая ссылка). Затем вы можете использовать API поиска Google, чтобы определить, кто помог вам таким образом, и поблагодарить их или наградить их… Для этой цели полезно, если первая часть имени файла вашего логотипа действительно уникальна, например unsportingly.unique.emxlogox .0FAE7E6.png, поэтому вам не нужно выполнять миллионы запросов API поиска Google — просто выполните поиск по уникальной первой части имени файла — и просмотрите хэши после получения совпадений.

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

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

linux — Получить журнал почты, отправленной с помощью mail() из PHP (sendmail?)

Задавать вопрос

спросил

Изменено 7 лет, 3 месяца назад

Просмотрено 89 тысяч раз

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

Почта была отправлена ​​с помощью функции PHP mail() , которая использует sendmail , что говорит об использовании Exim . Я видел команду:

 sendmail -bp
 

Что дает мне список почты, которая появляется, была отправлена. Этот список не очень большой и может быть точным (имеется в виду, что время ожидания сценария истекло после отправки примерно сотни электронных писем)

Является ли sendmail -bp лучшим способом получить этот список?

РЕДАКТИРОВАТЬ: Я не могу найти mail.log файл в /var/log/mail.log или через найдите mail.log , но WHM, кажется, имеет некоторую информацию об этом.

  • linux
  • php
  • электронная почта
  • sendmail
  • exim

1

В системах на основе Debian exim регистрирует данные в /var/log/exim4/mainlog .

Инструмент eximstats может оказаться полезным для разбора и извлечения полезной информации из этого файла журнала.

1

sendmail -bp mailq ) перечисляет только почтовую очередь: сообщения в очереди, но еще не отправленные.