Задача:
1. Необходимо организовать рассылку письма с вложением(прайс-лист) клиентам, так чтоб в поле "кому" небыло видно всего списка рассылки.
2. Рассылка должна идти только из своего домена(например firma.ua), для того чтоб предотвратить возможность отправки письма посторонними лицами на адрес рассылки.
Что имеем:
Имеем почтовый сервер Postfix на FreeBSD 7.0 сделан по статье http://sys-adm.org.ua/mail/mail-howto-p1.php#c10
Пробовал:
Установить Mailman по руководству http://www.list.org/mailman-install/index.html
+
нашел некоторые сайты с аналогичным описанием,
В результате, при отправке письма на созданный лист рассылки, сам postfix ругался что не найден такой пользователь. Танцы с бубном(и кто мне его только доверил???) продолжались недолго...
Удалось найти:
Скриптик написанный на perl который выполняет ВСЕ что необходимо! НО тоже ругается postfix... и тот же ответ, если говорить на языке этого скрипта, то при отправке на fignya@test.net, в логах - fignya@test.net не найден! (прослеживается - закономерность)
скрипт:
Код: Выделить всё
представим что сервак обслуживает домен test.net
echo "fignya: |/etc/mail/filter.pl" >> /etc/aliases
newaliases
touch /etc/mail/filter.pl
в файлик /etc/mail/filter.pl запихиваешь вот это:
###########################################################
#!/usr/bin/perl
use Mail::Internet;
my $message = Mail::Internet -> new([ <> ]); # parse message from STDIN
exit 69 if ($message->get(From) !~ /\@test\.net/); # service unavailable if sent not from test.net domain
open (RCPT,'< /etc/mail/'.$message->get(Subject))
|| die 'Strange subject "'.$message->get(Subject).'"'; # get recipients from file which name based on Subject string
my @bcc = <RCPT>;
my $bcc = join (", ", @bcc);
close (RCPT);
$message->replace('To', ""); # empty To field
$message->replace('Cc', ""); # empty Cc field
$message->replace('Bcc', $bcc); # put all recipients to Bcc field
$message->replace('Subject', "note ".$message->get(Subject)); # replace Subject field
$message->smtpsend(); # send this shit
exit 0;
############################################################
test.net замени на свой домен
далее, в каталоге /etc/mail/ создаем список получателей.
touch /etc/mail/clients
echo "test@test.net,test2@test.net,hz_chto@id.ru" >> /etc/mail/clients
усе, с настройкой закончили
теперь перейдем к вопросу как это будет работать.
шлем письмо на адрес fignya@test.net
subject должен совпадать с именем файлика в котором содержится список получателей
в данном случае, clients
П.С. Заранее спасибо!