Тестовая заглушка sendmail для php

Для тестирования отправки писем может очень пригодиться простая заглушка, которая просто складывает письма в какую-нибудь папку. Например, такая.

Создаем файлик sendmail.php.

#!/usr/bin/php
<?php

$filedata = file_get_contents('php://stdin');
$filename = __DIR__ . '/mail/' . date('Y-m-d-H-i-s') . '-' . md5($filedata) . '.eml';

if (!is_dir(dirname($filename)))
{
    @mkdir(dirname($filename), 0777, true);
}

if (is_dir(dirname($filename)) &amp;&amp; is_writable(dirname($filename)))
{
    @file_put_contents($filename, $filedata);
}

Указываем путь к нему в php.ini.

sendmail_path = '/var/www/sendmail.php -t';

И пользуемся…

mail('debug@example.com', 'тема', 'сообщение');
500 — Ошибка

Ошибка

Страница, которую Вы ищете, не найдена. Возможно, она была удалена, изменился её адрес, либо страница временно недоступна.

Попробуйте следующее:

Если Вы считаете, что запрошенная Вами страница должна находиться по этому адресу или Вы перешли на нее по ссылке с одной из страниц этого же сайта, пожалуйста, сообщите нам об этом.