qork
@qork
{ background: #F00B42 }

Как сделать заглушку sendmail для XAMPP в Linux?

Делал по этому гайду:
www.oldnix.org/blind-sendmail-in-linux
Счетчик отправленных писем в /var/mail/sendmail/num работает, заголовки пишутся в mail.log, но в директории new файлы с телом письма не создаются.

php.ini:
[mail function]
SMTP= localhost
smtp_port= 25
sendmail_path= /usr/bin/send.sh
mail.log = /var/mail/sendmail/mail.log

Содержание баш-скрипта send.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

Права на директорию выставил /var/mail/sendmail 777 (в статье небольшая ошибка chmode вместо chmod).
Конфиг modx
5954f2f3b3f946629d5ff28cf72cd1c1.png

В чём может быть ошибка?
  • Вопрос задан
  • 605 просмотров
Решения вопроса 2
fox_12
@fox_12
Расставляю биты, управляю заряженными частицами
Рискну предположить, что он у вас сперва проверяет доступность порта 25 на localhost

Если у вас стоит python (как правило по умолчанию он поставляется в большинстве дистрибутивов), то сделать заглушку проще простого без этих всех плясок с бубном:
python -m smtpd -n -c DebuggingServer localhost:25
А ваш скрипт - это костыль.
Ответ написан
Комментировать
akubintsev
@akubintsev
Опытный backend разработчик
Немного странный метод.
Зачастую просто перехватить отправку email мало, нужно еще и посмотреть как выглядит письмо в отладочных целях.
Я бы пошел более простым и проверенным путем: установил postfix и настроил редирект на свой почтовый ящик.
Есть и другая вариация: не отправлять из postfix, а ловить им просматривать удержанную очередь с помощью консольной утилиты pfqueue
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы