Pull to refresh

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

Reading time2 min
Views38K
Не так давно встала задача, установить заглушку для 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).
Все, закончено. Теперь эти письма можно будет забирать почтовиком и читать в удобоваримом виде.
Tags:
Hubs:
+39
Comments36

Articles

Change theme settings