Сервер Linux (php mail) отправляет атрибуты Windows IIS (php mail) не отправляет (иначе почта работает идеально)

У меня есть скрипт (бланк заявления о приеме на работу), который отправляет HTML-письмо с вложенными файлами. Он был протестирован и разработан на сервере Linux, но развертывается на Windows iis7. Проблема в том, что вложения файлов, отправляемые через php mail (smtp), по-видимому, удаляются из всех их данных. Файлы приходят с ext и именем файла, но теперь размер файла составляет 304 байта или 260 байтов. Что может быть причиной этого и как я могу решить.

2 ответа

PHP на самом деле не отправляет почту сам. Призыв к mail это просто проход к почтовой системе. Вы тестировали на Linux-машине с использованием sendmail или чего-то подобного, но Windows Mailers отличаются. Проверьте на точную среду, и вы сможете отлаживать.

Оказывается, что C:\windows\temp не имел IIS_IUSRS с доступом для чтения и записи.

Так что, если вы столкнетесь с этой проблемой:

  1. перейдите к C:\windows\temp *
  2. Щелкните правой кнопкой мыши, и он откроет свойства.
  3. Перейдите на вкладку "Безопасность" и в разделе (имя группы или пользователя:) нажмите "Изменить".
  4. на следующем экране, если IIS_IUSRS не указан, нажмите кнопку Добавить.
  5. на следующем экране вы увидите текстовое поле, введите IIS_IUSRS
  6. Теперь вы должны иметь возможность устанавливать разрешения.
  7. Теперь просто нажмите на iis_usrs на вкладке "Безопасность" и выберите "Чтение и выполнение", "Чтение и запись" и установите "Разрешить".

* это установлено в php.ini, это настройка по умолчанию для временных файлов под windows, ваш файл php.ini может быть чем-то другим, поэтому проверьте дважды. Теперь тебе должно быть хорошо идти. Я надеюсь, что мой ответ может помочь кому-то еще в будущем.

Другие вопросы по тегам