Сохранить e-mail на локалке, заглушка sendmail в Ubuntu для Php

В Ubuntu изначально не установлены пакеты для отправки email-ов. Рассмотрим способ, который сохраняет сообщения в папку в отдельные файлы.

1. Требуется создать shell-скрипт в /usr/bin/f_mail.sh:

sudo nano /usr/bin/f_mail.sh

В который внесем код:

#!/bin/sh
prefix="/var/www/sendmail/new"
numPath="/var/www/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.html"
while read line
do
echo $line >> $name
done
chmod 777 $name
/bin/true

/var/www/sendmail/new - путь, куда будут сохраняться файлы с мэйлами.

/var/www/sendmail - общая папка для работы скрипта.

2. Дать права на скрипт (возможно не для всех это требуется):

sudo chown root:root /usr/bin/f_mail.sh

sudo chmod 755 /usr/bin/f_mail.sh

3. Создадим структуру папок требуемую для работы:

sudo mkdir /var/www/sendmail/new && cd /var/www/sendmail/new && sudo mkdir cur && sudo mkdir new && sudo mkdir tmp && sudo chmod -R 777 /var/www/sendmail/new

4. Пропись в php.ini:

v5.6:

/etc/php5/apache2/php.ini
/etc/php5/cli/php.ini
/etc/php5/cgi/php.ini

v7.2:

/etc/php/7.2/apache2/php.ini
/etc/php/7.2/cli/php.ini
/etc/php/7.2/cgi/php.ini

В нужной версии, в файлах php.ini добавить в конец код или найти строку ;sendmail_path и заменить на:

sendmail_path = /usr/bin/f_mail.sh

1193 2

Комментарии

alex, я вижу 2 причины почему так может быть. Не в том php.ini прописан sendmail_path или вы используете для отправки не протокол "sendmail" а "mail". Но в любом случае могу уже не помнить. Напишите в какой-то из контактов, посмотрим, а потом я тут это опишу.
Сделал все так как написано в статье, не работает.
Только авторизованные пользователи могут оставлять комментарии Вход

Похожие статьи

Ubuntu Apache 2.4 Bad Request Size of a request header field exceeds server limit

Настройка Apache для большого объема Cookie. Разберем ошибку "Bad Request. Your browser sent a request that this server could not understand. Size of a request header field exceeds server limit." и параметры для настройки сервера.