Sendmail-заглушка для Linux Настройка Linux * Не так давно встала задача, установить заглушку для sendmail, дабы письма из PHP не отсылались на ложные адреса (при тестинге) или просто не возникала ошибка, а складывались аккуратно в папку. Аналогично тому, как это делает Денвер. Далее…
Поиск по просторам интернета ничего не дал, кроме советов читать мануал к sendmail. Но терпение и упорство сделали свое дело. И, спустя несколько дней, на одном из форумов нахожу интересный шелл-скрипт. Мне пришлось немного поправить его, для своих нужд. Итак, тело скрипта:
#!/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
Скрипт сохраняем в папку /usr/bin под любым угодным вам именем и делаем исполняемым (sudo chmod +x). Я использовал 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). Все, закончено. Теперь эти письма можно будет забирать почтовиком и читать в удобоваримом виде.