PEAR для отправки электронной почты из скрипта PHP с использованием удаленного сервера с аутентификацией SMTP - PullRequest
0 голосов
/ 19 сентября 2010

Мой php не может найти mail.php

Я установил пакет PEAR в каталог с именем pear_admin Я защитил все в этом каталоге с помощью .htaccess и .htpasswd Когда я захожу на mysite.com/pear_admin/index.php он запрашивает мое имя пользователя и пароль.Это работает, и я могу видеть и использовать PEAR Package Management. Я установил почтовый пакет.Я создал файл php5.ini и поместил его в свою корневую папку.Когда я нажимаю кнопку «Отправить» на моей странице контактов, файл PHP находит php5.ini, но затем происходит сбой.

Он не может найти mail.php Он находится во вновь созданном каталоге.Который отличается от того, где находится моя страница контактов.php5.ini должен решить эту проблему.Путь в php5.ini - include_path =.: / Usr / local / php5 / lib / php: / home / content / 91/5799191 / html / mywebsite / pear_admin / PEAR

Я также пробовал цитаты include_path= ".: / usr / local / php5 / lib / php: / home / content / 91/5799191 / html / mywebsite / pear_admin / PEAR"

Я не уверен, есть ли другие решенияМне нужно попробовать.Я не думаю, что я сделал что-то не так, когда я установил почтовый пакет.Это просто нажатие кнопки.

Может быть, это PHP, который я пробовал оба require_once "Mail.php";и include ('Mail.php');

Может быть, это потому, что я защитил его с помощью .htpasswd Это то, чего я не понимаю.Как он может получить доступ к этому файлу, когда я не даю ему имя пользователя и пароль в моем PHP?Разве я не должен этим заниматься?Если да, то как?

Спасибо.

1 Ответ

0 голосов
/ 20 сентября 2010

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

Конечно, если вы использовали что-то, что ДЕЛАЕТ запрос http (CURL, file_get_contents с абсолютным URL и т..) тогда они пройдут через веб-сервер и будут защищены парольной защитой.

Вы сказали, что делаете include('Mail.php'), но сказали, что установили mail.php.Помните, что серверы на основе Unix имеют чувствительные к регистру файловые системы, и Mail.php - это файл, совершенно отличающийся от mail.php.То же самое касается вашего пути включения.Если вы устанавливаете что-то в /tmp/FOO, но пытаетесь получить к нему доступ через /tmp/foo, это не будет работать.

...