RabbitMQ: Отправка почты

Рассмотрим возможность отправки почты через RabbitMQ средствами PHP. Зачем это нужно? Предположим нам надо отправить несколько тысяч писем с сайта. Когда нажмете «отправить», то сайт зависнет на некоторое время пока не будут разосланы все письма. Идея состоит в том, чтобы вместо отправки писем закодировать данные в JSON и передать на очередь в RabbitMQ. Далее будет сделан отдельный скрипт, который будет получать данные для отправки почты от RabbitMQ (такие скрипты можно запускать через supervisord или systemd). Получается сайт продолжит работать в обычном режиме, а отправка почты будет осуществляться в фоновом режиме. Сам по себе RabbitMQ ничем не занимается, кроме передачи сообщений между различными приложениями. Таким образом можно связать несколько абсолютно не совместимых программ 🙂 Чтобы создать пользователя выполняем следующие команды: $ rabbitmqctl add_user <username> <password> $ rabbitmqctl set_user_tags <username> administrator $ rabbitmqctl set_permissions -p / <username> ".*" ".*" ".*" Пользователь по-умолчанию «guest».

Продолжение поста после рекламы...