Рейтинг:0

Я установил sendmail_path в PHP.ini, и он отлично работает в командной строке, но не когда тот же скрипт вызывается с сервера Apache?

флаг cn

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

После просмотра документации все еще казалось, что это будет очень просто, поскольку sendmail_path Вариант конфигурации оказался именно тем, что мне было нужно. Я убедился, что и в командной строке, и через Apache загружаемый файл конфигурации php.ini один и тот же, поэтому я отредактировал этот файл и установил sendmail_path к /usr/local/bin/testsendmail. Затем я создал новый скрипт по этому пути, который принимает входные данные и записывает их в /tmp/sent-mail.html. Я создал этот файл и убедился, что он 777 разрешения, просто чтобы убедиться, что я не столкнулся с ошибками разрешений ( testendmail сценарий также имел 775 разрешения по той же причине).

Чтобы отправить электронное письмо с веб-страницы, я создал простой тестовый PHP-скрипт, который ничего не делает, кроме вызова почта() используя некоторые тестовые данные. Когда я запускаю этот скрипт через php /var/www/html/test/test.php, он работает именно так, как я и ожидал: он обращается к testendmail файл, который затем записывает электронное письмо в указанный мной файл. Однако, когда я открываю этот URL-адрес в браузере, почта() функция возвращает истинный но больше ничего не делает.

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

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.