Подскажите почтовые службы удовлетворяющие следующие потребности:
Есть почтовый ящик хостинга allmail@company.ru. На данный адрес приходят все письма адресованные данному домену. Например, root@company.ru, buh@company.ru, sales@company.ru и т.д.
1. Необходимо забирать всю почту с ящика allmail@company.ru и сортировать ее по пользователям или группам локальных пользователей сервера linux, далее пользователи своими windows клиентами будут забирать эту почту. Сортировка осуществляется по названию e-mail адреса.
2. Организовать сервер исходящей почты company.ru, для отправки писем через сервер хостера. Возможность создания правил для исходящей почты, для пересылки исходящей корреспонденции заданным пользователям.
Сборщик почты
Dovecot, postfix, procmail
На этих трёх китах я построил почту на своей прежней работе. Ситуация была 1:1 с вашей.
С dovecot-ом и postfix-ом думаю понятно что и как, а про procmail нужно несколько разъяснить.
Создеётся пользователь на линукс -машине, который и будет забирать всю почту с внешнего сервака. В его домашний каталог ложится файл
/home/allmail/.procmail
В котором перечисляются пользователи и по каким признакам им раскладывать почту (по адресу отправителя, теме, размеру и т.д.).
Все пользователи (которые должны получать почту) так же должны быть заведены в системе линукс, но для безопастности желательно что бы без возможности входа в оболочку (ну это по ситуации).
И собственно вауля - велосипед готов. Вся настройка у меня заняла как щас помню 43 минуты и то меня отвлекали постоянно. А вот конфиги не помню, поэтому более делально не подскажу, сорри.
Все-таки забирать с внешних ящиков должен fetchmail, который передает её локальному (не обязательно) postfix`у, а тот уже на разбор по правилам procmail, который и расскладывает их по ящикам. Для забора почты можно и dovecot.
Vadimsky, подскажите пожалуйста толковое HOWTO как организовать,
а то замучился уже почту у хостера получать и чистить((Dovecot, postfix, procmail
Enzo_brn, Какими я пользовался уже не помню, но у себя в закладках нашёл вот что:
Отсюда черпаем идею - http://www.redhat.com/archives/rhl-list/2005-January/msg00827.html
Отсюда вдохновение - http://redhat-club.org/forum/viewtopic.php?id=3909
Здесь убеждаемся в своей правоте - http://www.opennet.ru/base/net/corpmailserver.txt.html
Здесь если что то пошло ни так + дополнительный функционал - http://www.postfix.ru/
Vadimsky, спасибо большое, все честно прочитал - только вот половины еще не понял, новичок в линуксах. Пытаюсь найти законченный последовательный материал, который объяснит деревянным наполовину >Enzo_brn< что для чего используется и как и в каком порядке ставится. а то я как обычно наломаю дров) да и система у меня Debian Squeeze amd64
зы: пытался с exim4+mysql+spamassasin совлодать, но на релей не смог настроить. пока везде фейл(
Enzo_brn, Какой у васлинукс - не суть принципиально. Вам главное понять саму суть как оно работает в теории, тогда и настроить не проблема будет. В каком порядке устанавливать - тоже смысла не имеет принципиального, но Вам, чтобы проще было - поставьте сначала MySQL настройте его, затем Postfix + Dovecot, и последним procmail.
Если на пальцах, то в MySQL хранятся пользователи, procmail это фильтр - кому что когда и зачем. Собственно сам почтовик, отвечающий, что бы почта ходила туда-сюда, это Postfix + Dovecot.
И не бойтесь экспериментировать! Естественно читая маны. Маны в линуксе это даже не воздух у нас, это кислород, в него входящий.
Поэтому читайте, что то ценное нашли, сделайте, смотрите что получилось.
Усли у вас на этом сервере крутится что то ещё, и боитесь сломать, то экспериментируйте в виртуалке а лучше на отдельном танке.
В конце концов есть наш форум, только чур спрашивайте по существу - делал тото, правил такой то конфиг, хотел тото, вывалилась ошибка такая то. Вам всегда здесь помогут, и неважно какой у Вас дистр.
Удачи!
Vadimsky, спасибо Вам) Поставил Exim4, настроил его как смартхост. Письма со всех клиентских машин уходят. Поставил fetchmail, так как его при самом конфиге эксима упоминают. Настроил его, конфигом .fetchmailrc могу проверить кол-во писем у хостера и получить-(судя по логу получил уже только вот где они..) а вот что дальше - мне не ведомо.. Толи procmail, толи devcort. mysql наверное, избыточно для меня. Перечитал весь русский ман по fetchmail но так и не понял: как и чем раскладывать письма по ящикам юзеров и где они эти ящики вообще :(
Незачто.
Ящики обычно лежат тут: /var/spool/mail
А раскладывает почту по этим ящикам как раз procmail
В домашних каталогах пользователей лежит файл /home/%username%/.procmailrc в котором собственно и прописаны правила какую почту кому ложить. В каждом домашнем каталоге каждого пользователя такой файл. Ну и у главной почтовой записи тоже.
Vadimsky, ящиков пользователей даже и нет, там /var/spool/mail пусто. Но не это главное сейчас > Не могу найти завершенного мана как настроить ШИРОКО ИСПОЛЬУЕМУЮ связку Exim4 и fetchmail, только обрывки информации. Кровь из носу - оно мне очень нужно.
Что именно нужно:
Целостная почтовая система с возможностью отправки, получения (и проверки на спам и вирусы - в будущем) писем ЧЕРЕЗ ХОСТЕРА - пусть будет: remotedomain.ru
Вся почта для домена падает в 2 ящика: admin@remotedomain.ru и user1@remotedomain.ru
Что сделано:
1. Настроен Exim4 по ману http://wiki.debian.org/GmailAndExim4 работает как смартхост, отсылает письма через remotedomain.ru
2. Настроен fetchmail на сбор почты с ящиков admin и user1 хоста remotedomain.ru, вот его конфиг:Показать
set daemon 300 # Poll at 5-minute intervals
set logfile /var/log/fetchmail.log
set idfile /var/log/fetchid
set postmaster "root"
set no bouncemail
defaults
smtphost 192.168.1.98
interface "eth0/192.168.1.98"
envelope X-Envelope-To
fetchall
#
poll pop.remotedomain.ru proto pop3 port 995
user 'admin@remotedomain.ru' with pass "adminpass" is user here ssl;
user 'user1@remotedomain.ru' with pass "user1pass" is user here ssl;
sky@iserver:~$ [/console]
Еще не понятно, там речь идет о localhost c 127.0.0.1 а у меня сервер доступен для виндовых клиентов по eth0 с ip 192.168.1.98 и hostname iserver, его же слушает и Exim4, как и fetchmail, я надеюсь.. Т.е. сейчас гл. проблема - я не знаю как объеденить Exim4 и fetchmail.
+ Буду рад если кто-нибудь прояснит очевидные (но не для меня) вещи:
1. MTA + MDA + MUA - это мин. конфигурация почт.серв.?
в моем случае: MTA = Exim4, MDA = fetchmail (тогда procmail что такое, и какой агент отвечает за раскладывание писем по ящикам)
MUA = outlook express, еще бывают mutt, evolution.
2. Spamassasin и ClamAV прикручивается к procmail??
нашел вот что: /etc/exim4/conf.d/rewrite/31_exim4-config_rewritingПоказать
### rewrite/31_exim4-config_rewriting
#################################
# This rewriting rule is particularily useful for dialup users who
# don't have their own domain, but could be useful for anyone.
# It looks up the real address of all local users in a file
.ifndef NO_EAA_REWRITE_REWRITE
*@+local_domains "${lookup{${local_part}}lsearch{/etc/email-addresses}\
{$value}fail}" Ffrs
# identical rewriting rule for /etc/mailname
*@ETC_MAILNAME "${lookup{${local_part}}lsearch{/etc/email-addresses}\
{$value}fail}" Ffrs
.endif
[/console]
Может просто procmail нужно настроить?
там речь идет о localhost c 127.0.0.1
Если у вас все почтовые службы на одной физической (виртуальной) машине, то адрес указан правильно.
Т.е. сейчас гл. проблема - я не знаю как объеденить Exim4 и fetchmail
Тоесть объединить? это две совершенно разные службы и занимаются они разными делами. Хотя и учавствуют в одном мероприятии, если можно так сказать.
Просто нужно каждый поочереди правильно настроить и они прекрасно будут работать.
тогда procmail что такое, и какой агент отвечает за раскладывание писем по ящикам
прокмайл и отвечает, я это уже много раз Вам повторял.
Spamassasin и ClamAV
прикручиваются к сборщику почты, в моём случае это быд dovecot, у Вас fetchmail
procmail - повторюсь ещё раз - это правила, грубо говоря это iptables (утрированно, но раз по другому не понимаете) для почты.
Может просто procmail нужно настроить?
Именно это я Вам и твержу, с самого начала нашей беседы.
Спасибо за терпение, Vadimsky) Вы правильно сказали:
С отправкой понятно, с доставкой непойму..главное понять саму суть как оно работает в теории, тогда и настроить не проблема будет
procmail в системе устанавливается по умолчанию, я понятия не имею как им пользоваться, хотя нашел кучу доки по нему.
Если я его не настрою и получу почту через fetchmail то она просто пропадет чтоли??
В моей системе нет пользователей admin и user1 дак я их чтоли создать должен чтобы их почту получать?
Если у вас все почтовые службы на одной физической (виртуальной) машине, то адрес указан правильно.
Сервер не виртуальный, он железный) Все службы на нем. Если повесить Exim и fetchmail на "localhost = 127.0.0.1" то как же я к почтовому серверу с клиентских машин подключусь - в аутглюки пропишу localhost или 127.0.0.1? Это не тро-ло-ло, я правда не врублюсь ни в какую.. *WALL*
Если я его не настрою и получу почту через fetchmail то она просто пропадет чтоли??
Не исключено, зависит от системы и как нам по умалчанию настроено. Помню у меня в Debian кажется пропало, а в CentOS выплюнуло обратно с ошибкой (было лет 5 назад, поэтому не помню точно на каких именно осях было, так что не пруф, а просто пример.)
В моей системе нет пользователей admin и user1 дак я их чтоли создать должен чтобы их почту получать?
используйте алиасы. Пользователей конечно лучше создать, но некоторые системы имеют пользователя admin для своих нужд, тогда его можно заалиасить на любого другого. Вам помощь
[console]cat /etc/aliases[/console]
Сервер не виртуальный, он железный) Все службы на нем. Если повесить Exim и fetchmail на "localhost = 127.0.0.1" то как же я к почтовому серверу с клиентских машин подключусь - в аутглюки пропишу localhost или 127.0.0.1
Ну это совсем просто.
127.0.0.1 - это так называемая локальная петля. Все компьютеры, абсолютно все! имеют этот адрес. Даже не подключённые ни к какой сети.
Это адрес самого компьютера для самого себя, и ещё раз повторюсь, у каждого компа есть этот адрес. Именно этот. То есть, сделав ping 127.0.0.1 - это равнознано тому, что Вы подошли к зеркалу и спросили у того кто в зеркале паспорт, а так как он у Вас тоже спросил то, и Вы ему показали свой.
Надеюсь понятно.
Все обращения всех сетевых служб друг к другу в пределах одной машины осуществляются по адресу 127.0.0.1 Поэтому я и спросил на одной ли они машине (в данном случае наважно железка это или виртуалка). Так скажем внутри одной инсталляции.
А вот теперь самое интересное.
Если ваш комп, имеющий уже адрес 127.0.0.1 по умолчанию подключён к какой либо сети, то у него должен быть ещё один адрес!!! О как.
И узнать этот, а возможно и другие имеющиеся адреса нам поможет ifconfig Вот например мой:
[console]bash-4.1$ ifconfig
eth0 Link encap:Ethernet HWaddr 00:1A:4D:21:9F:BB
inet addr:192.168.0.55 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::21a:4dff:fe21:9fbb/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:120397 errors:0 dropped:0 overruns:0 frame:0
TX packets:87497 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:102811967 (98.0 MiB) TX bytes:33157065 (31.6 MiB)
Interrupt:21 Base address:0xa000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:32 errors:0 dropped:0 overruns:0 frame:0
TX packets:32 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1920 (1.8 KiB) TX bytes:1920 (1.8 KiB)
bash-4.1$ [/console]
У Вас должно быть что то подобное. И вот во второй сверху строчке (в моём случае) указан сетевой IP адрес, а не локальный 127.0.0.1
Вот Ваш сетевой Вам и надо указывать в почтовых клиентах, для подключения к Вашему почтовику. А ещё лучше поднять DNS, и указывать имя серера, но это тему уже другой беседы.
Vadimsky, так доходчиво еще никто не просвещал))) Спасибо!) Переиначил все я, "почти" настроил связку Postfix, Dovecot и MySQL,
(надо было мне не выеживаться и делать сразу на том что отработано лучше и инфы больше) Делаю[console]root@iserver:/home/sky# bsd-mailx enzo21brn@gmail.com
Subject: s7
asd
qwe
Cc: enzo21brn@yandex.ru
root@iserver:/home/sky# [/console]и в лог падает[console]Jan 13 17:29:49 iserver postfix/smtp[4463]: 5049E45412: to=<enzo21brn@gmail.com>, relay=none, delay=1043, delays=1040/0.02/2.5/0, dsn=4.4.3, status=deferred (Host or domain name not found. Name service error for name=smtp.some-agava-host.ru type=MX: Host not found, try again)
Jan 13 17:29:49 iserver postfix/smtp[4463]: 5049E45412: to=<enzo21brn@yandex.ru>, relay=none, delay=1043, delays=1040/0.02/2.5/0, dsn=4.4.3, status=deferred (Host or domain name not found. Name service error for name=smtp.some-agava-host.ru type=MX: Host not found, try again)[/console]Однако,[console]root@iserver:/home/sky# host -t mx some-agava-host.ru
some-agava-host.ru mail is handled by 10 cluster.relay.agava.net.[/console]
Неужели нужно DNS поднимать и MX-запись прописывать?
Лог dovecot молчит, пишет только что по пайпу внутри хоста ходит, с ним проблем, я думаю, нет. Конфиг постфикса main.cfПоказать
myhostname = iserver.some-host.ru
mydestination = iserver.some-host.ru, localhost, localhost.localdomain
mynetworks = 127.0.0.0/8 192.168.1.0/24
message_size_limit = 30720000
virtual_alias_domains = iserver
virtual_alias_maps = proxy:mysql:/etc/postfix/mysql-virtual_forwardings.cf, mysql:/etc/postfix/mysql-virtual_email2email.cf
virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql-virtual_domains.cf
virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailboxes.cf
virtual_mailbox_base = /home/vmail
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_sasl_authenticated_header = yes
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/postfix/smtpd.cert
smtpd_tls_key_file = /etc/postfix/smtpd.key
virtual_create_maildirsize = yes
virtual_maildir_extended = yes
proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $virtual_mailbox_limit_maps
virtual_transport = dovecot
dovecot_destination_recipient_limit = 1
myorigin = /etc/mailname
relayhost = smtp.some-agava-host.ru
#my_auth
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/password
smtp_sasl_security_options =
#end_auth
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = all
relay_domains = some-host.ru[/console]
relayhost = smtp.some-agava-host.ru
это что?
postfix не свою почту (mydestination) передает на relayhost или на то, что указано в transport_maps (здесь его нет). Видимо такого релея нет или нет MX-записи, поэтому и получаем
(Host or domain name not found. Name service error for name=smtp.some-agava-host.ru type=MX: Host not found, try again)Именно так, a-x) - Тесть должен (по идее) передвать выступая как смартxост для клиентских машин сети 192.168.1.0/24 и релеить всю ее на хостера smtp.some-agava-host.ru, извените за шифровку(some-agava-host), но он есть в сети и доступен, делал ему host -t mx и получил 1 сервер: 10 cluster.relay.agava.net.postfix не свою почту (mydestination) передает на relayhost
Уже реально замучился! Сделал в тыщупятидесятый раз exim4 как smarthost.
Exim4 поставил на локальный сервер в ЛС с ip 192.16.1.98, прописал relay_nets 192.168.1.0/24 - теперь могу отправлять с любых машин почту на лок. сервер, он ее переправит на хостера, а хстер отправит по назначению. Все Ок! На хостере есть 3 учетки, чтобы почта на них уходила прописал их в /etc/exim4/passwd.client[console]# cat /etc/exim4/passwd.client
mail.somehost.ru:admin@somehost.ru:adminpassw
mail.somehost.ru:user1@somehost.ru:user1passw
mail.somehost.ru:user2@somehost.ru:user2passw[/console]
С отправкой разобрался, интересует как и ЧЕМ ЛУЧШЕ получить почту для admin, user1, user2 чтобы она поклалась в папку эксима с форматом "maildir" ?
Таких пользователей в системе нет, как настроить? немогу понять саму логику взаимодействия MTA - MDA. Возможно, уже 1000 раз видел ответ на вопрос но КАК сделать получение почты клиентами локального сервера непоймуу :[