LINUX.ORG.RU
ФорумAdmin

procmail не сортирует


0

0

Здравствуйте, уважаемые! Есть сервер POSTFIX+courier-POP+fetchmail+procmail. Моя почта должна переправляться с помощью почтового сервера провайдера через почтовый ящик kwrty@nts-nn.ru Настроен и работает обмен почтой внутри локальной сети. Успешно осуществляется отправка почты в глобальную сеть через POSTFIX и дальше через сервер провайдера. Осталось проблема настройки получения почты и ее сортировки. Прочитав и изучив все, что только возможно, я сделал следующее: Оределил учетную запись, с помощью которой будет осуществляться доставка (например admin). Создал файл в домашней директории admin /home/admin/.fetchmailrc сделал admin владельцем и дал права 700. Вот содержимое файла: set postmaster admin set no bouncemail set logfile /var/log/fetchmail.log poll pop.nts-nn.ru no dns proto POP3 user kwyrty password xxxxxxx mda /usr/bin/procmail is admin here fetchall forcecr smtphost post.lmd keep

Потом так же создал файл .procmailrc Вот его содержимое: :0 * ^Subject:.*norton ! norton@post.lmd :0 * ^Subject:.*dump ! dump@post.lmd :0 * ^Subject:.*janna ! janna@post.lmd :0 * ^Subject:.*admin ! admin@post.lmd :0 /home/admin/othermai

Так же создал файл .forward c таким содержимым: |IFS=' ' && exec /usr/bin/procmail USER=admin

На всякий случай привожу частично файл postfix main.cf: inet_interfaces = all mydomain = lmd myhostname = post.lmd mydestination = localhost.$mydomain, $myhostname unknown_local_recipient_reject_code = 550 defer_transports = smtp relayhost = smtp.nts-nn.ru mynetworks = 192.168.0.0/24, 127.0.0.0/8 home_mailbox = Maildir/ mail_spool_directory = /var/mail notify_classes = resource, software, bounce, 2bounce, delay,protocol mynetworks_style = host smtpd_banner = $myhostname ESMTP $mail_name ($mail_version) (Mandriva Linux) unknown_local_recipient_reject_code = 450 smtp-filter_destination_concurrency_limit = 2 lmtp-filter_destination_concurrency_limit = 2 recipient_delimiter = + owner_request_special = no alias_maps = hash:/etc/postfix/aliases, hash:/var/lib/mailman/data/aliases smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd sender_canonical_maps = hash:/etc/postfix/sender_canonical local_recipient_maps = disable_dns_lookups = yes

Даю команду: $fetchmail -v В результате все письма поступают , в соответствии c последней строкой procmailrc, в папку "прочие письма" /home/admin/othermail а не сортируются согласно условию "Тема" по ящикам пользователей. Еще я вижу в директории /var/spool/mail файлы всех пользователей, они пусты, а в файле admin, от имени которого запускается fetchmail, свалены все тексты полученных писем для всех пользователей с такими пояснениями: X-Spam-Status: No, hits=3.3 required=6.0 X-Spam-Level: xxx Return-Path: <ystasm@rambler.ru> Received: from pop.nts-nn.ru by post.lmd with POP3 (fetchmail-6.3.4) for <admin@localhost> (single-drop); Sun, 08 Apr 2007 18:25:18 +0400 (MSD) Received: from mcgi19.rambler.ru ([81.119.67.194] verified) by mx.nnov.vt.ru (CommuniGate Pro SMTP 4.3.9) with ESMTP id 92856435 for kwrty@nts-nn.ru; Sun, 08 Apr 2007 17:01:52 +0400 Received: from [89.119.1.253] by mcgi19.rambler.ru with HTTP (mailimap); Sun, 08 Apr 2007 17:02:06 +0400 From: =?windows-1251?B?wuDk6Ow=?= - <ystasm@rambler.ru> To: <kwrty@nts-nn.ru> Subject: admin Date: Sun, 08 Apr 2007 17:02:06 +0400 Content-Disposition: inline Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="windows-1251"; format="flowed" MIME-Version: 1.0 Message-Id: <866069683.1176037326.169202992.14311@mcgi19.rambler.ru>

и вот еще: X-Spam-Status: No, hits=0.1 required=6.0 Return-Path: <ystasm@mail.ru> Received: from pop.mts-nn.ru by post.lmd with POP3 (fetchmail-6.3.4) for <admin@localhost> (single-drop); Sun, 08 Apr 2007 18:25:19 +0400 (MSD) #(примечание)у меня нет такого пользователя admin@localhost есть admin@post.lmd Received: from f61.mail.ru ([193.67.57.95] verified) by mx.nnov.vt.ru (CommuniGate Pro SMTP 4.3.9) with ESMTP id 92867413 for kwrty@nts-nn.ru; Sun, 08 Apr 2007 18:08:25 +0400 Received: from mail by f61.mail.ru with local id 1HaY46-0005at-00 for kwrty@nts-nn.ru; Sun, 08 Apr 2007 18:08:22 +0400 Received: from [89.119.144.144] by win.mail.ru with HTTP; Sun, 08 Apr 2007 18:08:22 +0400 From: ystas <ystasm@mail.ru> To: kwrty@nts-nn.ru Subject: norton Mime-Version: 1.0 X-Mailer: mPOP Web-Mail 2.19 X-Originating-IP: [89.119.144.144] Date: Sun, 08 Apr 2007 18:08:22 +0400 Reply-To: ystas <ystasm@mail.ru> Content-Type: text/plain; charset=koi8-r Content-Transfer-Encoding: 8bit Message-Id: <E1HabY4617-00051at-00.ystasm-mail-ru@f61.mail.ru>

Вот фрагмент записи работы fetchmail- /var/log/fetchmail.log: fetchmail: 6.3.4 запрашивает pop.nts-nn.ru (протокол POP3) на Вск 08 Апр 2007 18:40:21: опрос начат fetchmail: POP3< +OK POP3 Server ready fetchmail: POP3> CAPA fetchmail: POP3< +OK capability list follows fetchmail: POP3< SASL LOGIN PLAIN fetchmail: POP3< LAST fetchmail: POP3< TOP fetchmail: POP3< USER fetchmail: POP3< PIPELINING fetchmail: POP3< UIDL fetchmail: POP3< IMPLEMENTATION CommuniGatePro fetchmail: POP3< . fetchmail: POP3> USER kwrty fetchmail: POP3< +OK please send the PASS fetchmail: POP3> PASS * fetchmail: POP3< +OK 14 messages (34591 bytes) fetchmail: POP3> STAT fetchmail: POP3< +OK 14 34591 fetchmail: 14 сообщений для kwrty на pop.nts-nn.ru (34591 октетов). fetchmail: POP3> LIST 1 fetchmail: POP3< +OK 1 3473 fetchmail: POP3> RETR 1 fetchmail: POP3< +OK 3473 bytes will follow fetchmail: считывается сообщение kwrty@pop.nts-nn.ru:1 из 14 (3473 октетов) ../bin/sh: : No such file or directory procmail: Error while writing to "" fetchmail: не пропущено fetchmail: POP3> LIST 2 fetchmail: POP3< +OK 2 3472 fetchmail: POP3> RETR 2 fetchmail: POP3< +OK 3472 bytes will follow fetchmail: считывается сообщение kwrty@pop.nts-nn.ru:2 из 14 (3472 октетов) ../bin/sh: : No such file or directory procmail: Error while writing to "" fetchmail: не пропущено ........................ fetchmail: POP3> QUIT fetchmail: POP3< +OK POP3 Server connection close fetchmail: 6.3.4 запрашивает pop.mts-nn.ru (протокол POP3) на Вск 08 Апр 2007 18:42:39: опрос завершен fetchmail: нормальное завершение, статус 0

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


Ответ на: комментарий от brig77

Сделал изменения в файле procmailrc. Было так: :0 * ^Subject:.*norton ! norton@post.lmd :0 * ^Subject:.*dump ! dump@post.lmd :0 * ^Subject:.*janna ! janna@post.lmd :0 * ^Subject:.*admin ! admin@post.lmd :0 /home/admin/othermail

Теперь сделал так: :0 * ^Subject:.*norton /home/norton/Maildir :0 * ^Subject:.*dump /home/dump/Maildir :0 * ^Subject:.*janna /home/janna/Maildir :0 * ^Subject:.*admin /home/admin/Maildir :0 /home/admin/othermail И еще добавил строку в maim.cf mailbox_command = /ysr/bin/procmail Запускаю fetchmail под учетной записью admin. Почта благополучно доставляется admin-у в /Maildir, а для других пользователей попадает в папку "другие письма"- othermail, то есть фактически не доходит. Скорее всего у admin не хватает прав на чужие директории. Тогда я запускаю fetchmail под root, и все письма, к моему счастью, раскладываются по /Maildir пользователей. В fetchmail.lod больше нет ошибок и я, как оказалось преждевременно, возрадовался. Что бы пользователи имели к своим письмам доступ поднимаю samba. Захожу с клиентской машины в директорию /Maildir, открываю письмо с помощью Outlook Express но во входящих его нет (скорее всего Outlook не понимае этот формат). Пробую открыть в Word и в Блокноте, пишет, что недостаточно прав (действительно письма раскладывались root-oм). Как же почтовый клиент пользователя должен извлечь письмо из /Maildir? Скорее всего samba тут не нужна. Какой-то заколдованный круг, чувствую, что я у цели, почта стала раскладываться, а результата нет. В данный момент сервер в состоянии обеспечить обмен почтой внутри локальной сети и отправку почты в глобальную сеть, а с доставкой почты из глобальной сети я основательно застрял. Спасибо!

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

Определил место куда складываютя полученные письма, это /home/user/Maildir/new перенаправил туда procmail-ом письма. теперь почтовые клиенты пользователей находят свои письма но загрузить их не могут, при этом выдается ошибка: Ia oaaeinu iieo?eou niiauaiea ca iiia?ii 1. O?aoiay caienu: 'post.lmd', Na?aa?: 'post.lmd', I?ioieie: POP3, Ioaao na?aa?a: '-ERR Can't open the message file - it's gone!', Ii?o: 110, Caueoa (SSL): Iao, Ioeaea na?aa?a: 0x800CCC90, Eia ioeaee: 0x800420CD Перевод: Не удалось получить сообщение под номером 1. Учетная запись: post.lmd. Сервер post.lmd Протокол РОР3 Ответ сервера: Не могу открыть файл сообщения Порт 110 Защита SSL Нет Ошибка сервера .........Код ошибки ...........

Ясно, что fetchmail я запускаю root-ом и владельцем всех писем становится root. Сейчас я занимаюсь тем, что меняю владельцев каждого полученного письма: #chown user.user /home/user/Maildir/new/msg.XXX (очень увлекательное занятие, скоро от меня дым пойдет)

.Теперь пользователи могут получать свои письма из глобальной сети, как бы освободиться от рутинной работы переназначения владельцев? Спасибо!

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