простой вопрос: какой из них имеет хорошую производительность при отправке писем навалом?
функция mail() или sendmail
который используется популярными пакетами диспетчера списков PHP?
Ответ 1
Ну, функция mail() не подходит для электронных писем, отправленных массово, потому что она открывает и закрывает SMTP-сокет для каждого отправляемого вами письма, что далеко не эффективно. Если вы посмотрите PEAR:: Mail, вы можете использовать 3 бэкэнда: mail, sendmail и plain SMTP. Для чего это стоит, я лично предпочитаю SMTP, потому что он легко поддерживается как в Linux, так и в Windows.
Если вы хотите отправить почту в фоновом режиме с помощью очереди, PEAR:: Mail_Queue может быть решением.
Ответ 2
sendmail - это агент передачи почты (MTA). В системах на базе UNIX и Linux функция PHP mail() просто передает электронную почту, хотя sendmail (или совместимый MTA). Для отправки массовой почты вам может потребоваться прямое подключение к SMTP-серверу. Zend Framework обеспечивает SMTP-транспорт.
Ответ 3
Если вы используете SMTP-почтовый сервер самостоятельно, убедитесь, что у вас SPF и доменные ключи настроены правильно, или ваша почта окажется в блоке нежелательной почты для большинства крупных доменов (yahoo, gmail и т.д.).
Кроме того, не забывайте о обработке отказов и надежных функциях отмены подписки. Без этих почтовых сообщений будет намного меньше, и ваш IP-адрес получит черный список.
И, конечно, не разрешайте открывать реле. Выполняйте домашнее задание и делайте осторожность, спамеры затруднили нам.