Перейти к содержимому
www.mytechnote.ru
Меню
  • Администрирование
    • Скрипты
  • Оборудование
    • Обзоры
    • Инструкции
  • Прочее
  • Русский
    • English
    • Русский
Меню

Добавляем подпись в письма при помощи сервера (Postfix)

Привет. Обратились ко мне с просьбой настроить почтовый сервер так, что бы сервер сам добавлял подписи к письмам пользователей. Хочу рассказать вам, как я эту задачу решил.

У меня имеется — настроенный и рабочий SMTP сервер postfix, который работает на Ubuntu Server 16.04. Добавлять подписи будем при помощи altermime.

Перейдем в режим суперпользователя:

sudo su

Обновим список пакетов:

apt update

Установим altermime:

apt install altermime

Добавим пользователя для altermime:

useradd -r -c "Postfix Filters" -d /var/spool/filter filter

Создадим для него директорию и зададим на нее необходимые разрешения:

mkdir /var/spool/filter
chown filter:filter /var/spool/filter/
chmod 755 /var/spool/filter/

Создаем скрипт обработки писем:

nano /etc/postfix/disclaimer

Его содержимое:

#!/bin/sh
# Localize these.
INSPECT_DIR=/var/spool/filter
SENDMAIL=/usr/sbin/sendmail
DISCLAIMERS=/etc/postfix/disclaimers
# Exit codes from <sysexits.h>
EX_TEMPFAIL=75
EX_UNAVAILABLE=69

# Clean up when done or when aborting.
trap "rm -f in.$$" 0 1 2 3 15

# Start processing.
cd $INSPECT_DIR || { echo $INSPECT_DIR does not exist; exit
$EX_TEMPFAIL; }

cat >in.$$ || { echo Cannot save mail to file; exit $EX_TEMPFAIL; }
from_address=`grep -m 1 "From:" in.$$ | cut -d "<" -f 2 | cut -d ">" -f 1`
from_address=`echo "$from_address" | sed "s/From: //g"`


if [ -f $DISCLAIMERS/$from_address ] ; then
/usr/bin/altermime --input=in.$$ \
                   --disclaimer=$DISCLAIMERS/${from_address} \
                   --disclaimer-html=$DISCLAIMERS/${from_address} || \
                     { echo Message content rejected; exit $EX_UNAVAILABLE; }
fi
$SENDMAIL -oi "$@" <in.$$

exit $?

Задаем нужные права на этот файл:

chgrp filter /etc/postfix/disclaimer
chmod 750 /etc/postfix/disclaimer

Создаем папку, где у нас будут храниться файлы с подписями:

mkdir /etc/postfix/disclaimers

И в ней создадим файлы с подписями для каждого адреса, которому нужно добавить подпись:

echo "подпись для ящика test@mytechnote.ru" >> /etc/postfix/disclaimers/test@mytechnote.ru
echo "подпись для ящика test1@mytechnote.ru" >> /etc/postfix/disclaimers/test1@mytechnote.ru

Как видно — имя файла с подписью должно совпадать с адресом отправителя.

Опять меняем права:

chgrp -R filter /etc/postfix/disclaimers
chmod -R 750 /etc/postfix/disclaimers

Осталось только внести изменения в конфиг Postfix:

nano /etc/postfix/master.cf

Здесь после сточки с smtp нужно добавить параметр —     -o content_filter=dfilt:

Должно получиться что то вроде:

smtp      inet  n       —       y       —       —       smtpd
    -o content_filter=dfilt:

Пробелы в начале второй строки — важны.

И в конец файла добавляем:

dfilt     unix    —       n       n       —       —       pipe
    flags=Rq user=filter argv=/etc/postfix/disclaimer -f ${sender} — ${recipient}

Перезапускаем postfix:

/etc/init.d/postfix restart

Вот и всё, теперь все сообщения, которые будут отправляться с адресов указанных в disclaimers будут дополняться подписью.

Единственный момент — если вы будете отправлять письма в текстовом виде (без html), практически наверняка будут проблемы с кодировкой подписи.

По умолчанию это UTF-8. Если ваш почтовый клиент не воспринимает ее, то изменить кодировку файла можно такими командами:

iconv -f UTF-8 -t cp1251 test\@fl-mon.com > tmp
mv tmp test\@fl-mon.com

Соответсвенно cp1251 — нужно изменить на ту, в которой по умолчанию показывает почтовая программа.

Если же в заголовке письма указано, что в письме есть html код, то проблем с кодировкой быть не должно.

Опубликовано в 16.11.201730.05.2024 от sanglyb

Навигация по записям

← Как изменить заголовок терминала в Linux
Удобная среда для HTML верски [sublime, emmet, livereload] →

Добавить комментарий Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Подписывайтесь

Youtube
vk
telegram
github
twitter
rss
  • Форум
  • Об авторе
  • Поддержать автора

Популярные записи

Новые записи

  • Как расширить LVM раздел в Linux
  • Исправление ошибки SrsResources.dll после обновления SSRS для SCCM
  • Проблема при использовании библиотеки PassFiltEx на старых процессорах
  • Как удалить вложения из старых событий календаря в Exchange с помощью скрипта
  • Как скачать и установить Office 2024 LTSC

Архивы

  • 2026 (3)
  • 2025 (5)
  • 2024 (7)
  • 2023 (6)
  • 2022 (5)
  • 2021 (25)
  • 2020 (34)
  • 2019 (39)
  • 2018 (78)
  • 2017 (56)
  • 2016 (77)
  • 2015 (9)
© 2015-2026 www.mytechnote.ru
Использование материалов сайта возможно только с разрешения владельца или обязательна индексируемая, прямая, передающая вес ссылка на материал.