PHP mail () — Exchange 2003 не получает электронную почту

У меня есть PHP mail () скрипт, который отправляет HTML письмо, содержащее встроенные изображения.

Код в основном это:

mail($to, $subject, $message, $headers);

Заголовки выглядят так:

MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="--a9cf4407bac7d49ebd2d94af284cb0d8"From: Myname <[email protected]>
Reply-To: [email protected]

Электронная почта доставляется на все адреса outlook.com и gmail.com. Однако я проверил, когда отправляется в наш офис с Microsoft Exchange 2003, электронная почта не доставляется. Это даже не достигает бревен, что ставит меня в тупик. Exchange не блокирует электронную почту, она даже не получает ее.

Есть ли известный конфликт PHP / Exchange 2003? Или проблема в другом месте?

Я рад предоставить больше кода, если это необходимо.

1

Решение

Вы, кажется, используете функцию почты php. Это часто громоздко для настройки и устранения неполадок.

Вы можете сэкономить много времени, заглянув в PHPMailer или Swift Mailer. Эти библиотеки постоянно поддерживаются и исправляются, чтобы оставаться совместимыми с Exchange и другими системами.

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

0

Другие решения

У меня были те же симптомы несколько лет назад, и если ваша проблема такая же, как у меня, вы удивитесь, узнав, что она не имеет ничего общего с вашим кодом.

В моем случае я отправлял почту с веб-сервера с внутренним размещением на почтовый сервер с внутренним размещением. Веб-сервер был в интерфейсе DMZ (термин брандмауэр / сеть), а почтовый сервер был во внутреннем интерфейсе. Каждый интерфейс работает в отдельной IP-подсети (опять же, в сети). DNS для почтового домена (mail.ourdomain.com) преобразован во внешний IP нашего брандмауэра, который настроен для маршрутизации этого трафика на внутренний почтовый сервер. Однако эта конфигурация работала только для трафика, поступающего из внешнего интерфейса (внешнего трафика). Трафик, исходящий из интерфейса DMZ (почта, отправленная с нашего веб-сервера), не может быть направлен на внутренний почтовый сервер.

Вы можете быстро проверить, есть ли у вас такая же проблема. SSH к вашему веб-серверу и попытайтесь пропинговать почтовый сервер, используя имя DNS.

ping mail.domain.co.uk

Если вы получите ответ, то это может быть не та же проблема.

В противном случае сверьтесь с тем, кто отвечает за безопасность брандмауэра / сети, и поработайте с ними, чтобы выяснить, что вам нужно сделать, чтобы получить трафик с веб-сервера на почтовый сервер. В нашем случае мы добавили запись файла hosts для mail.domain.com, разрешающую внутренний IP почтового сервера вместо внешнего IP.

0

По вопросам рекламы [email protected]