Как отправлять электронные письма с помощью PHP из сети, защищенной брандмауэром?

StackOverflow https://stackoverflow.com/questions/818058

Вопрос

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

Моя идея состоит в том, чтобы использовать «QK SMTP Server 3» и заставить его использовать внешний сервер, который у меня есть, в качестве «сервера ретрансляции».Будет ли это работать?Есть ли более простой вариант?

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

[root@balder296 ~]# service iptables status
Firewall is stopped.
[root@balder296 ~]#

Спасибо за любую помощь и совет.

Решено

Hotmail (что удивительно) предоставляет бесплатную услугу ретрансляции.Надеюсь, это сработает для меня, когда я это проверю!Но внешний почтовый сервер — лучший вариант.

Это было полезно?

Решение

Выясните, можете ли вы подключиться к Интернету через порт 25 (SMTP).

  • telnet gmail-smtp-in.l.google.com 25 (это один из серверов Gmail)

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

  • yum install postfix (например, из вашего «сервисного» замечания я предполагаю, что вы используете Redhat или Centos)

Если вы не можете подключиться к почтовым серверам Интернета через порт 25, вы можете попробовать найти внутренний почтовый ретранслятор (это то, что вам придется найти самостоятельно, в зависимости от вашей сети).

В этот момент у вас есть два варианта.Вы можете использовать внутреннюю функцию mail() на своем локальном почтовом сервере, если вы определили параметр «relay» на своем почтовом сервере (/etc/postfix, если вы используете Postfix).

Другой вариант — следовать это руководство и получите PHP для отправки сообщений на внутренний ретранслятор.

Другие советы

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

Почему бы вам не спросить парня из сети, что является хорошим решением для отправки почты?

Если у вас есть учетная запись Google Mail, вы можете использовать ее для отправки электронных писем, используя Swift Mailer .

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

Вы дружелюбный сосед, сисадмин почти наверняка настроит это, если вы спросите.

Если это будет общедоступное приложение, имейте в виду, что даже если вы можете получить доступ по SMTP-выходу, вы, скорее всего, столкнетесь с проблемами в будущем. Средства защиты от спама стали довольно требовательны к поведению сети. Например, есть действующий SMTP-сервер в сети, и вы настраиваете другой, который может вызвать проблемы для обоих серверов, если они имеют одинаковый IP-адрес из-за пределов сети. Несколько основных черных списков автоматически блокируют адреса, на которых, по-видимому, находится более одного сервера.

Если вы пытаетесь обойти администратора сети, в лучшем случае у вас может быть хрупкая система. В зависимости от правил / настроек вашей сети, вы МОЖЕТЕ иметь возможность настроить пакет SMTP-сервера для ретрансляции сообщений с другого почтового сервера в сети. Это должно потребовать работы с сетью или администратором электронной почты.

В прошлом я использовал SwiftMailer, а затем настроил общую учетную запись gmail для отправки почты. Одна вещь, которую я обнаружил, заключается в том, что лучше сохранять адрес отправителя в качестве учетной записи gmail, которую вы настраиваете, в противном случае спам-фильтры, как правило, портят электронную почту.

scroll top