Зберегти 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

1728 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." та параметри для налаштування сервера.