Подтвердить что ты не робот

Проверка функции почты PHP из localhost

Мне нужно проверить функцию, использующую PHP mail()
Как я могу это сделать без загрузки script на сервер и протестировать его в Интернете?
Что еще больше я разрабатываю без подключения к Интернету вообще.
Я на Mac OSX запускаю localhost из XAMPP.

4b9b3361

Ответ 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

Ответ 4

Хм. Я не пробовал это, но в php.ini вы можете установить "sendmail_path"... так что теоретически вы могли бы написать свою собственную оболочку script, которая просто записывала входные данные в текстовые файлы и меняла ваш php.ini для использования что? Затем просто запустите тесты и проверьте текстовые файлы!

Ответ 5

Установите сервер pop3 на локальном компьютере. Многие доступны бесплатно. и отправлять письма в своем локальном домене с помощью sendmail.

По умолчанию не требуется устанавливать путь sendmail в Linux. по крайней мере, я никогда не нуждался в этом. просто используйте функцию mail() и удалите письма в локальном домене