Мне нужно проверить функцию, которая использует почту PHP ()
Как я могу это сделать, не загружая скрипт на сервер и не тестируя его в Интернете?
Что еще больше я разрабатываю без подключения к Интернету вообще.
Я на Mac OSX запускаю localhost из XAMPP.
Вам не нужно устанавливать MTA на свой компьютер для проверки функции mail()
PHP. В системах на базе 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
.
Чтобы проверить отправку электронной почты из apache, выполните следующие действия.
создайте папку для хранения электронной почты.
/home/username/Documents/TestEmails
Дайте разрешение apache. В папке «Документы» запустите
sudo chgrp -R www-data TestEmails
Измените файл php.ini, мой
/etc/php5/apache2/php.ini
установить sendmail_path
sendmail_path ='cat > /home/username/Documents/TestEmails/mail.txt'
Перезапустить apace2
sudo service apache2 restart
Хорошее и простое решение для тестирования:
http://blogs.bigfish.tv/adam/2009/12/03/setup-a-testing-mail-server-using-php-on-mac-os-x/ Обновленная ссылка: https://github.com / ifunk / SMTP-улавливатель
Хм. Я не пробовал это, но в php.ini вы можете установить «sendmail_path» … так теоретически вы могли бы написать свой собственный сценарий оболочки, который просто написал ввод в текстовые файлы и изменил ваш php.ini, чтобы использовать его? Затем просто запустите тесты и проверьте текстовые файлы!
Установите сервер pop3 на локальном компьютере. Многие доступны бесплатно. и отправлять письма в своем локальном домене с помощью sendmail.
По умолчанию ему не требуется устанавливать путь sendmail в Linux. по крайней мере, я никогда не нуждался в этом. просто используйте функцию mail () и удалите письма в локальном домене