Проверьте почтовую функцию PHP от localhost - PullRequest
22 голосов
/ 04 июля 2010

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

Ответы [ 7 ]

52 голосов
/ 05 июля 2010

Вам не нужно устанавливать 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.

8 голосов
/ 28 октября 2013

Чтобы проверить отправку электронной почты от Apache, выполните следующее

создать папку для хранения электронной почты.

/home/username/Documents/TestEmails

Дайте разрешение apache. Из папки «Документы» запустите

sudo chgrp -R www-data TestEmails

Измените файл php.ini, мой находится в

/etc/php5/apache2/php.ini

set sendmail_path

sendmail_path ='cat > /home/username/Documents/TestEmails/mail.txt'

Перезапустить apace2

sudo service apache2 restart
5 голосов
/ 06 мая 2011

Хорошее и простое решение для тестирования:

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

1 голос
/ 05 июля 2010

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

0 голосов
/ 24 июля 2018

Если вы работаете в Windows или используете что-то вроде WAMP / UWAMP / XAMPP и вам необходимо проверить почту, то Papercut стоит посмотреть:Настройки SMTP в php.ini как значения по умолчанию (localhost / 25), и это просто работает.Он выглядит как почтовый клиент и показывает все части / детали сообщения в отдельных разделах.

0 голосов
/ 23 июня 2018

Опираясь на ответ @ Даниэль-Эгеберг предоставил, вот что у меня сработало в Ubuntu 18.04:

Я открыл /etc/php/7.2/apache2/php.ini и установил:

sendmail_path = 'tee /path/to/file/mail.out'

перезапущен:

sudo service apache2 restart

затем создал /path/to/file/mail.out и изменил разрешения для него:

chmod 666 /path/to/file/mail.out

0 голосов
/ 04 июля 2010

Настройка сервера pop3 на локальном компьютере. Многие доступны бесплатно. и отправлять почту в вашем локальном домене, используя sendmail.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...