Страница 1 из 1

Почтовая рассылка, скрипт

Добавлено: 2009-01-23 3:20:33
khiluck
Всем привет, нужна помощь. Судя по результатам долгих и нудных блужданий по гуглу, яндексу, и т.п. этот вопрос волнует многих и нигде нет толкового ответа :cf:

Задача:
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  
Может дело в настройках postfix ? :unknown: конфиги точно такие, как в статье, см. выше

П.С. Заранее спасибо! :roll:

Re: Почтовая рассылка, скрипт

Добавлено: 2009-01-23 12:52:52
Alex Keda
на у в чём проблема?
делаете шаблон письма и скармливаете его почтарю по очереди сувая получатеелй.
на 5 строк скрипт...

Re: Почтовая рассылка, скрипт

Добавлено: 2009-01-23 16:09:11
khiluck
Проблема в том что, при отправке письма (с клиентской почтовой программы, напр. TheBat) на адрес почтовой рассылки, типа - fignya@test.net, сервер postfix отвечает:

Код: Выделить всё

Recipient address rejected: undeliverable address: unknown user: "fignya@test.net";
может там проблема с настройками postfix?
кусочек конфига main.cf:

Код: Выделить всё

alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases

virtual_alias_maps = mysql:$base/mysqlLookupMaps/alias.conf
если я прописываю вот так:

Код: Выделить всё

echo "fignya: |/etc/mail/filter.pl" >> /etc/aliases 
newaliases 
то получаем:

Код: Выделить всё

Recipient address rejected: undeliverable address: unknown user: "fignya@test.net";
если же я прописываю его в БД (через консольку ручками вношу эту запись, в таблицу aliases) то сервер выдает другую ошибку:

Код: Выделить всё

Jan 23 00:47:48 relay postfix/virtual[2836]: E6628B8C5: to=<|/etc/mail/filter.pl@test.net>, relay=virtual, delay=0.2, delays=0.02/0.07/0/0.1, dsn=5.1.1, status=bounced (unknown user: "|/etc/mail/filter.pl@test.net")
Подскажите, пжлста, что может быть? может я что-то упустил?
П.С. Такая же ошибка с Mailman ... :cz2:

Re: Почтовая рассылка, скрипт

Добавлено: 2009-01-25 22:35:29
khiluck
Кто нибудь, вообще, настраивал почтовый сервер по статье - http://sys-adm.org.ua/mail/mail-howto-p1.php
или нет?

Re: Почтовая рассылка, скрипт

Добавлено: 2009-01-25 22:41:29
Alex Keda
khiluck писал(а):Кто нибудь, вообще, настраивал почтовый сервер по статье - http://sys-adm.org.ua/mail/mail-howto-p1.php
или нет?
это вроде копия того что на сайте тут лежит.
думаю, сотен несколько человек настроили.
а что?

Re: Почтовая рассылка, скрипт

Добавлено: 2009-01-26 11:16:53
Agronom
Можно в качестве рассылочника использовать Majordomo - это достаточно мощное средство для рассылок. Если надо - могу дать дистрибутив и подсказать как настроить. Смысл программы в том, что создается алиас (например massmail@company.ru) в файле мажордома прописывается с каких адресов могут делать рассылку, и потом пользователь создает лист рассылки, простой текстовый файл и закидывает его в директорию листов рассылки, и со своего почтового ящика отсылает письмо на адрес massmail@company.ru. Результат - письмо уходит каждому из списка листа рассылки, только для каждого и никто не видит остальных из списка

Re: Почтовая рассылка, скрипт

Добавлено: 2009-01-26 13:57:31
khiluck
lissyara писал(а): это вроде копия того что на сайте тут лежит.
думаю, сотен несколько человек настроили.
а что?
Хотел спросить, в конфигах postfix'a (по этой статье) нет никаких подводных камней, касательно последующей установки на такой сервак рассыльщика, типа mailman и ему подобных?

П.С. Прошу не ругать :) т.к. пытался разобраться самостоятельно, читал документации и спрашивал на постфикс.ру и сам недавно купил книгу "Postfix: Подробное руководство", и не смог ничего найти. Кстати, если кто захочет ее купить - не советую, уж совсем мало материала, в основном только основы, зато очень хорошо расписаны. Так что совсем новичкам - подойдет :)

Re: Почтовая рассылка, скрипт

Добавлено: 2009-01-26 14:01:07
khiluck
Agronom писал(а):Можно в качестве рассылочника использовать Majordomo...Если надо - могу дать дистрибутив и подсказать как настроить...
Буду очень признателен, смотрел в гугле инфу по majordomo, насколько понял проект закрыт и найти документацию как подружить postfix и majordomo не нашел :( так что очень надеюсь на помощь!!! :roll:

Re: Почтовая рассылка, скрипт

Добавлено: 2009-01-26 16:39:25
ProFTP
нифига не понятно, но заяц в подписе офигенный! :-D

Re: Почтовая рассылка, скрипт

Добавлено: 2009-01-26 17:43:44
Agronom
khiluck писал(а): Буду очень признателен, смотрел в гугле инфу по majordomo, насколько понял проект закрыт и найти документацию как подружить postfix и majordomo не нашел :( так что очень надеюсь на помощь!!! :roll:
самому в наследство достался этот продукт, пришлось разбираться самостоятельно - перелопатил кучу страниц, пока не нашел самое подробное руководство по настройке majordomo. Там прикручивается к sendmail-у, но разницы нет ни какой. Можно сделать почти один-в-один как в статье (только чуть подправить алиасы и в конфиге указать свои пути к файлам) и все должно заработать. Сам Majordomo можно взять здесь

Re: Почтовая рассылка, скрипт

Добавлено: 2009-01-26 17:49:47
Agronom
единственное различие для разных почтовиков в строке majordomo.cf -

Код: Выделить всё

$sendmail_command = 
тут нужно указать путь до того, кто будет отправлять почту

Re: Почтовая рассылка, скрипт

Добавлено: 2009-01-27 23:17:51
khiluck
Agronom писал(а):... один-в-один как в статье (только чуть подправить алиасы ...
В этом как раз у меня и проблема :(
Неполучается разобраться с алиасами, подскажи, плиз как их правильно править именно для postfix'a, и в самом main.cf (конфиг postfix'a) где нужно указывать файл к алиасам,

и правильно я мыслю? создаю файл (неважно где) /etc/myaliases, и в него закидываю нужное

Код: Выделить всё

majordomo: "|/usr/local/majordomo/wrapper majordomo"
owner-majordomo: test@mydomain.ua
majordomo-owner: test@mydomain.ua
затем, newaliases или postalias /etc/myaliases

И где в конфиге постфикса, я должен указать этот файл
тут?

Код: Выделить всё

virtual_alias_maps = mysql:$base/mysqlLookupMaps/alias.conf, hash:/etc/myaliases
или тут?

Код: Выделить всё

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases, hash:/etc/myaliases

Re: Почтовая рассылка, скрипт

Добавлено: 2009-01-30 1:24:18
Agronom
с postfix не приходилось сталкиваться, но по докам могу сказать что алиасы указываются так:

Код: Выделить всё

alias_maps = hash:/etc/mail/aliases
в aliases уже прописываем строчку:

Код: Выделить всё

diz-announce:    "|/usr/local/majordomo/wrapper resend -l diz-announce diz-announce-afftor"