Sendmail-заглушка для Linux

Задача: установить заглушку для sendmail, чтобы письма из PHP не отсылались на ложные адреса при тестировании, а складывались в папку.
Скрипт сохраняем в /usr/bin/fake_sendmail.sh

#!/bin/sh
prefix="/var/mail/sendmail/new"
numPath="/var/mail/sendmail"

if [ ! -f $numPath/num ]; then
echo "0" > $numPath/num
fi
num=`cat $numPath/num`
num=$(($num + 1))
echo $num > $numPath/num

name="$prefix/letter_$num.txt"
while read line
do
echo $line >> $name
done
chmod 777 $name
/bin/true
chmod +x /usr/bin/fake_sendmail.sh

Теперь все исходящие письма будут складываться в /var/mail/sendmail. Так же необходимо выставить для папки права на запись. (chmod 777 -R /var/mail/sendmail).

Примечание:
Для сбора писем почтовиком (о чем ниже), нужно в этой папке создать следующую структуру папок:

/var/mail/sendmail/
— cur
— new
— tmp

И дать права на запись.

Настройка PHP

У меня стоит Кубунта, так что все пути относительно нее. Итак, находим в папке /etc/php5/apache2 файл php.ini и меняем в нем путь к sendmail на:

sendmail_path = /usr/bin/fake_sendmail.sh

Привязка локальной папки к KMail

Запускаем KMail и переходим в опции создания нового аккаунта:
Settings -> Configure KMail -> Accounts -> Add.

Выбираем maildir mailbox, а в настройках этого аккаунта, собственно, путь к папке с письмами (/var/mail/sendmail).
Все, закончено. Теперь эти письма можно будет забирать почтовиком и читать в удобоваримом виде.

http://habrahabr.ru/post/49665/