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

Asked
Viewd322

0

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

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

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

 [[email protected] ~]# service iptables status
Firewall is stopped.
[[email protected] ~]#
 

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

Решено

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

  • Какие у меня есть еще варианты?

    Abs03 мая 2009, 22:31
  • Если вы заблокированы сетью, вам лучше обратиться к администратору сети.

    acrosman03 мая 2009, 23:02
  • Если сеть блокирует исходящие подключения к порту 25, этот подход просто не сработает.

    Dave03 мая 2009, 21:42

6 ответов

2

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

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

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

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

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

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

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

0

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

0

Раньше я использовал SwiftMailer, а затем настроил общую учетную запись Gmail для отправки почты. Единственное, что я обнаружил, это то, что лучше оставить адрес from в качестве учетной записи Gmail, которую вы настраиваете, в противном случае фильтры спама будут уничтожать электронную почту.

0

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

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

0

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

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

1

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

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