LINUX.ORG.RU
ФорумAdmin

postfix (автоответчик)


1

2

Здравствуйте!Не могу разобраться,как средствами postfix сделать автоответчик для одного почтового ящика (шлют письма на vova@mydomain.ru,получают ответное письмо что vova в отпуске,и у него всё зашибись...).


Например, прогнать через внешний скрипт как фильтр.

НО. Обязательно проверяй адрес отправителя. И ни в коем случае не включай в ответ исходное письмо. Желательно также отвечать только на письма с твоего же домена.

Иначе спамеры будут тебя пользовать примерно как bounce relay

router ★★★★★
()
Ответ на: комментарий от Skeletal

Да не хотелось бы postfixadmin прикручивать...

den777
() автор топика
Ответ на: комментарий от router

Здесь проблемка,написать скрипт пока тяму не хватает,а гугл ничего не подсказал подобного...

den777
() автор топика
Ответ на: комментарий от den777

Классика жанра:

/etc/postfix/master.cf

[...]
autoreply
        unix    -       n       n       -       -       pipe
        flags=F user=nobody     argv=/etc/postfix/autoreply.pl ${sender} ${recipient}

/etc/postfix/transport

[...]
autoreply.domain.ru     autoreply:

/etc/postfix/virtual # если хочешь, чтобы письмо всё же упало в ящик, вместо virtual используй cc или bcc копии

[...]
user@domain.ru user@autoreply.domain.ru

/etc/postfix/autoreply.pl

#!/usr/bin/perl

use strict;
use MIME::Base64;

my ($to, $from) = @ARGV;
$from =~ s/autoreply.domain.ru/domain.ru/;

open MAIL, "| /usr/sbin/sendmail -t -oi";
print MAIL "To: $to\nFrom: noreply\@domain.ru\nSubject: Notify\n";
print MAIL 'MIME-Version: 1.0', "\n";
print MAIL 'Content-Type: text/plain; charset="koi8-r"', "\n";
print MAIL 'Content-Transfer-Encoding: base64', "\n\n";
# get text from file
open MSG, "/etc/postfix/autoreply.msg";
my $msg = "autoreply from $from\n\n" . join ( "", <MSG> );
print MAIL encode_base64($msg), "\n";
close MSG;

close MAIL;

/etc/postfix/autoreply.msg # кодировка файла должна соответствовать тому, что в скрипте указано в charset /etc/postfix/autoreply.msg

Здравствуйте!
С величайшей радостью сообщаю всем,
что вы меня не увидите в течение этой недели нигде,
т.к. я уезжаю нафиг на необитаемый остров,
где надеюсь приятно провести время на золотом песочке
под ласковым тропическим солнышком утреннего рассвета.

router ★★★★★
()
Последнее исправление: router (всего исправлений: 1)
30 апреля 2014 г.
Ответ на: комментарий от blind_oracle

Я для этого использовал dovecot + sieve скрипты, самое то

Прошу прощения за некропост. А можно подробнее? У меня простой почтовый сервак для legacy-почты на Dovecot и getmail (сбор, хранение, доступ по IMAP всему офису). Хочу эту почту окончательно упразднить, предупредив всех заранее

MahMahoritos ★★★
()
Ответ на: комментарий от MahMahoritos

В maildir кладёшь файл .dovecot.sieve примерно такого вида:

require "vacation";

vacation :days 1 :addresses ["user@domain.ru"] :subject "Subject" "Body";

В самом довкоте что-то вроде:

plugin {
    sieve = ~/.dovecot.sieve
    sieve_dir = ~/sieve
}

protocol lda {
    mail_plugins = sieve
}
И при доставке он будет обрабатывать скрипт и отсылать ответ.

blind_oracle ★★★★★
()
Ответ на: комментарий от blind_oracle

И при доставке он будет обрабатывать скрипт и отсылать ответ

Хм, интересно для этого нужен полноценный postfix или достаточно локального smtp-клиента?

MahMahoritos ★★★
()
Ответ на: комментарий от MahMahoritos

Сложно сказать, но чтобы довкоту скормить письмо всё равно нужен какой-то MTA.

blind_oracle ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.