У меня есть веб-приложение для Linux.
Нужно ли мне открывать порт 25, чтобы отправлять электронные письма только с помощью функции PHP mail? Если мне нужно открыть порт 25, как я могу отключить получение писем?
Редактировать: Я спрашиваю, потому что понимаю, что sendmail - это агент передачи сообщений на моем сервере.
Нет.
Пока ваши правила брандмауэра разрешают исходящий трафик, вам не нужно открывать порт 25 для Отправить электронное письмо.
Порт 25 должен быть открыт только в том случае, если вы хотите, чтобы ваша машина получить Эл. адрес.
Функция php mail () полагается на sendmail как двоичный файл для отправки почты.
любой MTA (служба, прослушивающая порт 25) имеет программу, подобную sendmail, которая будет служить этой цели.
если вы не хотите, чтобы порт 25 был открыт, вы можете использовать брандмауэр для всех подключений, исходящих из мира; например
iptables -I INPUT -p tcp -i eth0 --dport 25 -j REJECT
Если вы хотите только отправлять электронные письма и не получать электронные письма, вы можете открыть порт 25, но не входить. Или вы можете использовать нестандартное реле порта, такое как Реле NO-IP(никакого отношения к компании). Хотя я не уверен, зачем вам это нужно.
Это зависит от того, как настроен брандмауэр на сервере / шлюзе / где угодно.
В большинстве случаев брандмауэры блокируют входящий трафик, например трафик через порт 25, поступающий на ваш сервер. Сказав это, я обычно настраиваю брандмауэры, чтобы разрешать исходящий трафик на порт 25 только с известных почтовых серверов.
В любом случае, это действительно зависит от конфигурации вашего брандмауэра, но, чтобы ответить на ваш вопрос настолько подробно, насколько вы его задавали ... открытие 25 исходящих не означает наличие 25 открытых входящих. Если вы включите исходящий трафик на порт 25, вы сможете отправлять почту. Если вы оставите его закрытым для входящих, вы не сможете получать почту.
Это, конечно, зависит от того, где находится брандмауэр в вашей сетевой топологии ...