В данной небольшой пошаговой инструкции представлено описание процесса настройки заглушки для функции отправки писем по электронной почте в сборке веб-сервера XAMPP.
Заглушка sendmail на XAMPP
1. Во-первых создаем новый каталог. Для наглядности назовем его blank_mail.
2. Во-вторых создадим там одноименный php-скрипт со следующим содержимым:
<?php # Каталог, где мы будем хранить нашу # электронную корреспонденцию: define("DIR", "/opt/lampp/tmp/blank_mail/"); # Присваиваем имя файлу, функция: function mkname($j = 0) { $file = DIR.date('Y-m-d_H-i-s_'). "$i.eml"; if ( file_exists($file) ) return mkname(++$j); return $file; } # Извлекаем содержимое письма из потока: $stream = ''; $fp = fopen('php://stdin','r'); while ( $t = fread($fp,2048) ) : if ( $t === chr(0) ) break; $stream .= $t; endwhile; fclose($fp); # Сохраняем содержимое письма в файл: $file = fopen(mkname(),'w'); fwrite($file,$stream); fclose($file); ?>
3. В-третьих создаем упомянутый в вышеприведенном коде каталог «/opt/lampp/tmp/blank_mail/». Разрешаем в него запись.
4. В-четвертых открываем конфигурационный файл PHP — php.ini. К примеру, если вы используете ОС семейства Linux, тогда он будет лежать в каталоге «/opt/lampp/etc».
Итак, ищем параметр с именем sendmail_path и прописываем в его значении путь до скрипта, который мы создали на втором шаге. К примеру вот так:
sendmail_path = /opt/lampp/bin/php /opt/lampp/blank_mail/blank_mail.php
5. Наконец перезапускаем XAMPP командой из терминала/командной строки:
sudo /opt/lampp/lampp restart
Итоги:
После описанных манипуляций все отправленные вами письма будут «оседать» в каталоге «/opt/lampp/tmp/blank_mail/». Формат имени файла при этом будет следующим: год-месяц-число-час-минута-секунда_.eml.
Спасибо, полезная статья. Единственное в sendmail_path = /opt/lampp/bin/php /opt/lampp/blank_mail/blank_mail.php ошибка, после lampp/ идет еще tmp ))).
В моем xampp папки tmp нет вместо неё temp.
Доступ расшарить надо как для /blank_mail так и для папки tmp.