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

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
khiluck
рядовой
Сообщения: 47
Зарегистрирован: 2007-07-26 19:48:31
Откуда: Одесса

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

Непрочитанное сообщение khiluck » 2009-01-23 3:20:33

Всем привет, нужна помощь. Судя по результатам долгих и нудных блужданий по гуглу, яндексу, и т.п. этот вопрос волнует многих и нигде нет толкового ответа :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:
(\__/)
(='.' =)
E[:]|||||[:]З
(")_(")

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35456
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

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

Непрочитанное сообщение Alex Keda » 2009-01-23 12:52:52

на у в чём проблема?
делаете шаблон письма и скармливаете его почтарю по очереди сувая получатеелй.
на 5 строк скрипт...
Убей их всех! Бог потом рассортирует...

Аватара пользователя
khiluck
рядовой
Сообщения: 47
Зарегистрирован: 2007-07-26 19:48:31
Откуда: Одесса

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

Непрочитанное сообщение khiluck » 2009-01-23 16:09:11

Проблема в том что, при отправке письма (с клиентской почтовой программы, напр. 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:
(\__/)
(='.' =)
E[:]|||||[:]З
(")_(")

Аватара пользователя
khiluck
рядовой
Сообщения: 47
Зарегистрирован: 2007-07-26 19:48:31
Откуда: Одесса

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

Непрочитанное сообщение khiluck » 2009-01-25 22:35:29

Кто нибудь, вообще, настраивал почтовый сервер по статье - http://sys-adm.org.ua/mail/mail-howto-p1.php
или нет?
(\__/)
(='.' =)
E[:]|||||[:]З
(")_(")

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35456
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

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

Непрочитанное сообщение Alex Keda » 2009-01-25 22:41:29

khiluck писал(а):Кто нибудь, вообще, настраивал почтовый сервер по статье - http://sys-adm.org.ua/mail/mail-howto-p1.php
или нет?
это вроде копия того что на сайте тут лежит.
думаю, сотен несколько человек настроили.
а что?
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Agronom
ст. сержант
Сообщения: 305
Зарегистрирован: 2006-12-11 10:30:13

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

Непрочитанное сообщение Agronom » 2009-01-26 11:16:53

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

Аватара пользователя
khiluck
рядовой
Сообщения: 47
Зарегистрирован: 2007-07-26 19:48:31
Откуда: Одесса

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

Непрочитанное сообщение khiluck » 2009-01-26 13:57:31

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

П.С. Прошу не ругать :) т.к. пытался разобраться самостоятельно, читал документации и спрашивал на постфикс.ру и сам недавно купил книгу "Postfix: Подробное руководство", и не смог ничего найти. Кстати, если кто захочет ее купить - не советую, уж совсем мало материала, в основном только основы, зато очень хорошо расписаны. Так что совсем новичкам - подойдет :)
(\__/)
(='.' =)
E[:]|||||[:]З
(")_(")

Аватара пользователя
khiluck
рядовой
Сообщения: 47
Зарегистрирован: 2007-07-26 19:48:31
Откуда: Одесса

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

Непрочитанное сообщение khiluck » 2009-01-26 14:01:07

Agronom писал(а):Можно в качестве рассылочника использовать Majordomo...Если надо - могу дать дистрибутив и подсказать как настроить...
Буду очень признателен, смотрел в гугле инфу по majordomo, насколько понял проект закрыт и найти документацию как подружить postfix и majordomo не нашел :( так что очень надеюсь на помощь!!! :roll:
(\__/)
(='.' =)
E[:]|||||[:]З
(")_(")

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

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

Непрочитанное сообщение ProFTP » 2009-01-26 16:39:25

нифига не понятно, но заяц в подписе офигенный! :-D
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Аватара пользователя
Agronom
ст. сержант
Сообщения: 305
Зарегистрирован: 2006-12-11 10:30:13

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

Непрочитанное сообщение Agronom » 2009-01-26 17:43:44

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

Аватара пользователя
Agronom
ст. сержант
Сообщения: 305
Зарегистрирован: 2006-12-11 10:30:13

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

Непрочитанное сообщение Agronom » 2009-01-26 17:49:47

единственное различие для разных почтовиков в строке majordomo.cf -

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

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

Аватара пользователя
khiluck
рядовой
Сообщения: 47
Зарегистрирован: 2007-07-26 19:48:31
Откуда: Одесса

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

Непрочитанное сообщение khiluck » 2009-01-27 23:17:51

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
(\__/)
(='.' =)
E[:]|||||[:]З
(")_(")

Аватара пользователя
Agronom
ст. сержант
Сообщения: 305
Зарегистрирован: 2006-12-11 10:30:13

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

Непрочитанное сообщение Agronom » 2009-01-30 1:24:18

с postfix не приходилось сталкиваться, но по докам могу сказать что алиасы указываются так:

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

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

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

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