Мне нужно проверить функцию, использующую PHP mail()
Как я могу это сделать без загрузки script на сервер и протестировать его в Интернете?
Что еще больше я разрабатываю без подключения к Интернету вообще.
Я на Mac OSX запускаю localhost из XAMPP.
Проверка функции почты PHP из localhost
Ответ 1
Вам не нужно устанавливать MTA на свой компьютер для проверки функции PHP mail()
. В системах на базе Unix (Linux, * BSD, OS X и т.д.) Вы можете установить sendmail_path
на что-то вроде tee mail.out > /dev/null
. Это поместит электронные письма (включая заголовки) в файл с именем mail.out
.
Вот пример того, как он будет работать:
[email protected]:~$ cat | php -d sendmail_path='tee mail.out > /dev/null'
<?php
mail('[email protected]', 'the subject', 'the body');
?>
[email protected]:~$ cat mail.out
To: [email protected]
Subject: the subject
X-PHP-Originating-Script: 1000:-
the body
Вы можете установить sendmail_path
в свой php.ini
файл. Если вы хотите добавлять письма в файл вместо перезаписи каждый раз, вы можете использовать tee -a
вместо tee
.
Ответ 2
Чтобы проверить отправку электронной почты из 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
Ответ 3
Хорошее и простое решение для тестирования:
http://blogs.bigfish.tv/adam/2009/12/03/setup-a-testing-mail-server-using-php-on-mac-os-x/
Обновленная ссылка:
https://github.com/ifunk/smtp-catcher
Ответ 4
Хм. Я не пробовал это, но в php.ini вы можете установить "sendmail_path"... так что теоретически вы могли бы написать свою собственную оболочку script, которая просто записывала входные данные в текстовые файлы и меняла ваш php.ini для использования что? Затем просто запустите тесты и проверьте текстовые файлы!
Ответ 5
Установите сервер pop3 на локальном компьютере. Многие доступны бесплатно. и отправлять письма в своем локальном домене с помощью sendmail.
По умолчанию не требуется устанавливать путь sendmail в Linux. по крайней мере, я никогда не нуждался в этом. просто используйте функцию mail() и удалите письма в локальном домене