Отправка почты в PHP с использованием Exchange SMTP - PullRequest
0 голосов
/ 18 января 2011

У меня есть клиент, который использует Exchange (хотя я не уверен, какая версия). Из того, что я знаю, у них есть SMTP для их Exchange, однако якобы я не могу использовать его, так как моя система работает на PHP + Linux. Это не будет работать для Exchange на лицензионном сервере Windows. Насколько это правда? Я пытаюсь отправить почту через SMTP, а не напрямую на сервер Exchange.

Они дали подробности о SMTP, и я попробовал, и да, это не работает. Я получил сообщение об ошибке «Не удалось подключиться к узлу SMTP».

Какие есть другие варианты отправки почты через PHP? Погуглил и нашел что-то под названием WebDav. Это был бы мудрый выбор?

EDIT> Я думаю, что что-то пошло не так быстро, но это еще не все. Я могу (предположительно) подключиться к SMTP, но не могу отправить почту на другие домены. Я попытался отправить на свой собственный домен, и он работает. Проверил мой почтовый ящик, и электронная почта там, однако, если я отправляю в Live или GMail, это не работает. Это дает мне эту ошибку:

PHPMAILER_RECIPIENTS_FAILEDemail@email.com

Email@email.com - это правильный существующий адрес электронной почты. Я даже проверил с GMail и нет проблем с отправкой. Теперь я хотел бы знать, в чем проблема. Может ли это быть в кодировке или на SMTP-сервере?

В качестве дополнительной заметки я использую Joomla 1.5.22.

Ответы [ 2 ]

2 голосов
/ 18 января 2011

Они неверны. SMTP - это стандартизированный протокол, который не имеет ничего общего с операционной системой, используемой клиентом. В Exchange есть несколько специфических вещей, которые немного странны в том, как он обрабатывает SMTP, но они, скорее всего, не будут вам полезны.

Если вы получаете сообщение «Не удалось подключиться к SMTP-хосту», это довольно фундаментальная проблема, это означает одно из следующих действий:

  1. Сервер не принимает входящий SMTP от кого-либо
  2. Сервер не принимает входящий SMTP с вашего IP
  3. На пути мешает брандмауэр.

Есть много способов устранить это. Проще всего, если предположить, что это сервер, который должен быть доступен для общего интернета, из командной строки запустить telnet 1.2.3.4 25 (где 1.2.3.4 - это IP, где должен находиться сервер). Если это связано, то посмотрите, можете ли вы запустить ту же команду с компьютера, на котором находится ваш PHP. Если нет, скажите клиенту, что вы не можете получить доступ к SMTP извне, и посмотрите, могут ли они устранить неполадки.

0 голосов
/ 18 января 2011

Вы могли бы использовать gmail ? Я знаю, что вы, возможно, не используете phpmailer, но инструкции должны помочь вам в правильном направлении.

Звучит так, будто «они» (я полагаю, что это системный администратор для сети, в которой вы работаете?) Могут иметь другие идеи относительно того, как вы это делаете - порты могут быть ограничены и т.д.

...