Итак, я пытаюсь провести простой тест некоторых функций электронной почты в приложении 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()
чтобы выписать данные.