Нужен ли SMTP или POP3 на сервере для запуска PHPMailer? - PullRequest
0 голосов
/ 14 сентября 2018

У меня загруженный веб-сервер CentOS, который отправляет много исходящих писем с помощью PHPMailer. Postfix и Sendmail оба установлены на нем, но поскольку нет учетных записей пользователей, которые используют сервер для электронной почты, мне интересно, могу ли я удалить оба этих порта и закрыть порты 25 110 465 587 для безопасности. Сможет ли PHPMailer отправлять исходящие сообщения?

Ответы [ 3 ]

0 голосов
/ 14 сентября 2018

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

Функция PHP mail () обычно отправляет через локальный почтовый сервер, как правило, запускаемый двоичным файлом sendmail на платформах Linux, BSD и OS X, однако Windows обычно не включает локальный почтовый сервер; Интегрированная реализация PHPMailer SMTP позволяет отправлять электронную почту на платформах Windows без локального почтового сервера.

https://github.com/PHPMailer/PHPMailer

0 голосов
/ 14 сентября 2018

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

Вам определенно не нужен POP3, но вам может потребоваться входящий порт 25, если вы собираетесь получать / обрабатывать отскоки от отправляемых вами сообщений и хотите, чтобы они возвращались вам.

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

Кроме того, будьте понятны, что вы подразумеваете под sendmail. Postfix - это полноценный почтовый сервер, так же как и sendmail , но имя sendmail также часто используется для обозначения двоичного файла sendmail, который на самом деле является локальным агентом отправки сообщений - это то, что используется PHP mail() функция. postfix предоставляет двоичный файл sendmail, но postfix не является sendmail.

0 голосов
/ 14 сентября 2018

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

Вам не нужен POP (выможет отключить это в любое время) но вам понадобится sendmail или какой-либо другой сервис SMTP для фактического выполнения работы запросов PHP Mailer.

Если вам определенно необходимо закрыть sendmail и связанные порты, вы всегда можете расстаться сэто и реализовать вашу логику доставки почты с помощью Mailgun, SendGrid, Elastic Email, Pepipost или какой-либо другой альтернативы.Будет задействовано кодирование, так как вам нужно будет взаимодействовать с API этих провайдеров, и все они связаны с некоторыми затратами (у Mailgun и Sendgrid есть бесплатные уровни для пары тысяч писем в месяц, я не помню, если другие тоже так делают)и интеграционные усилия.

...