Я должен протестировать функцию, которая использует почту PHP ()
Как я могу сделать это, не загружая сценарий на сервер и протестировать его онлайн?
Что еще больше, я разрабатываю без Интернет-соединения вообще.
Я нахожусь на MAC OSX, работающей localhost от XAMPP.
Хм. Я не пробовал этого, но в php.ini вы можете установить sendmail_path ... так что теоретически вы могли бы написать свой собственный сценарий оболочки, который просто записывал ввод в текстовые файлы и изменял свой php.ini для его использования? Тогда просто запустите тесты и проверьте текстовые файлы!
Установите pop3 сервер в локальной машине. Многие из них доступны бесплатно. и отправляйте почту в локальном домене с помощью sendmail.
По умолчанию в Linux не требуется указывать путь к sendmail. По крайней мере, мне это никогда не требовалось. Просто используйте функцию mail() и отправляйте почту в локальном домене
Вам не нужно устанавливать MTA на свой компьютер для тестирования функции PHP mail ()
. В системах на основе Unix (Linux, * BSD, OS X и т. Д.) Вы можете установить sendmail_path
примерно как tee mail.out> / dev / null
. Это поместит электронные письма (включая заголовки) в файл с именем mail.out
.
Вот пример того, как это будет работать:
daniel@daniel-laptop:~$ cat | php -d sendmail_path='tee mail.out > /dev/null'
<?php
mail('test@example.com', 'the subject', 'the body');
?>
daniel@daniel-laptop:~$ cat mail.out
To: test@example.com
Subject: the subject
X-PHP-Originating-Script: 1000:-
the body
Вы можете установить sendmail_path
в вашем файле php.ini
. Если вы хотите добавлять электронные письма к файлу вместо перезаписи каждый раз, вы можете использовать tee -a
вместо просто tee
.