получение системной почты по imap

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

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
FreeBSP
майор
Сообщения: 2020
Зарегистрирован: 2009-05-24 20:20:19
Откуда: Москва

получение системной почты по imap

Непрочитанное сообщение FreeBSP » 2010-01-02 15:25:41

Здравствуйте!

Руту приходит много почты. это известный факт) А когда машинка стоит под столом и на нее неделями не обращаешь внимания, то разгребать сотни(а порой и тысячи) писем становится очень лениво и весьма проблематично. Появилось желание получать всю почту по имапу, и разгребать уже непосредственно графическим почтовым клиентом.

Возможно ли такое и в какую сторону смотреть?
Человек начинает получать первые наслаждения от знакомства с unix системами. Ему нужно помочь - дальше он сможет получать наслаждение самостоятельно ©
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!

Хостинговая компания 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/
Выделенные сервера, Россия, Москва, от 2460 рублей (8 CPU, 8Gb RAM, 2x500Gb HDD, RAID 3ware 9750):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

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

Re: получение системной почты по imap

Непрочитанное сообщение Alex Keda » 2010-01-02 18:45:00

откуда у вас там тысячи писем?
может стоит перенаправить вывод планировщика куданить в район топки? =)))
Убей их всех! Бог потом рассортирует...

Аватара пользователя
FreeBSP
майор
Сообщения: 2020
Зарегистрирован: 2009-05-24 20:20:19
Откуда: Москва

Re: получение системной почты по imap

Непрочитанное сообщение FreeBSP » 2010-01-02 20:13:15

хотел сделать сбор статистики по оперативке - такое ощущение что что то течет и течет весьма сильно.
забабахал в пользовательский кронтаб что то типа

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

 */1 * * * * root vmstat | awk '...' > logfile 2>&1 &
и оно мне исправно слало примерно следующие

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

Date: Fri, 1 Jan 2010 05:25:05 +0300 (MSK)
From: Mail Delivery Subsystem <MAILER-DAEMON@__HOST__>
To: postmaster@__HOST__
Subject: Postmaster notify: see transcript for details

[-- Вложение #1 --]
[-- Тип: text/plain, кодировка: 7bit, размер: 0,5K --]

The original message was received at Fri, 1 Jan 2010 05:25:05 +0300 (MSK)
from localhost

   ----- The following addresses had permanent fatal errors -----
__USER__
    (reason: 550 5.1.1 <__USER__@__HOST__>... User unknown)
    (expanded from: __USER__)

   ----- Transcript of session follows -----
... while talking to [127.0.0.1]:
>>> DATA
<<< 550 5.1.1 <__USER__@__HOST__>... User unknown
550 5.1.1 __USER__... User unknown
<<< 503 5.0.0 Need RCPT (recipient)

[-- Вложение #2 --]
[-- Тип: message/delivery-status, кодировка: 7bit, размер: 0,3K --]

Reporting-MTA: dns; __HOST__
Arrival-Date: Fri, 1 Jan 2010 05:20:00 +0300 (MSK)

Final-Recipient: RFC822; __USER__@__HOST__
Action: failed
Status: 5.1.1
Remote-MTA: DNS; [127.0.0.1]
Diagnostic-Code: SMTP; 550 5.1.1 <__USER__@__HOST__>... User unknown
Last-Attempt-Date: Fri, 1 Jan 2010 05:20:00 +0300 (MSK)

[-- Вложение #3 --]
[-- Тип: message/rfc822, кодировка: 7bit, размер: 2,3K --]

Return-Path: <MAILER-DAEMON>
[-- Вложение #3 --]
[-- Тип: message/rfc822, кодировка: 7bit, размер: 0,6K --]

Return-Path: <__USER__>
Received: (from __USER__@localhost)
        by __HOST__ (8.14.3/8.14.3/Submit) id o012U0bo020795;
        Fri, 1 Jan 2010 05:30:00 +0300 (MSK)
        (envelope-from __USER__)
Date: Fri, 1 Jan 2010 05:30:00 +0300 (MSK)
Message-Id: <201001010230.o012U0bo020795@__HOST__>
From: __USER__(Cron Daemon)
To: __USER__
Subject: Cron <__USER__@__HOST__> root    echo `vmstat |tail -1 |awk '{print $5}'` "    " `date "+
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/home/__USER__>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=__USER__>
X-Cron-Env: <USER=__USER__>

Syntax error: EOF in backquote substitution
сейчас в яшике почти 4700 писем - вычищать их через mail мне не улыбвается
mutt будет получше, но и он не супер - хотелось бы графический интерфейс - чтобы все письма можно было читать с десктопа
Человек начинает получать первые наслаждения от знакомства с unix системами. Ему нужно помочь - дальше он сможет получать наслаждение самостоятельно ©
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!

Аватара пользователя
FreeBSP
майор
Сообщения: 2020
Зарегистрирован: 2009-05-24 20:20:19
Откуда: Москва

Re: получение системной почты по imap

Непрочитанное сообщение FreeBSP » 2010-01-03 19:51:08

ну
понеслося

почему то суровое молчание дает больше мотивации к действию чем сотни добрых слов и посылов на хорошие страницы мануалов(Прежде, чем кричать что я - хулиган, выделите этот абзац)

поставил courier-imap но так и не добрался до конфигуряния - тут мне не ответили, а пошарившись по каким то сайтам в поисках простого решения, я полез в порты с криком ХОЧУ IMAP!!!
там я наткнулся на порт bincimap и чуть было его не поставил, но на сайте обнаружил слова, которые вселили ясность в мою бренную голову - <<Binc IMAP 1.2 is a Maildir only IMAP server (no traditional mbox support).>>

ухты
так мне нужен не просто imap server а с поддержкой системных ящиков формата mbox

бежим в гуглюком, вбиваем <<imap server mbox>> , жмем "Мне повезет!" и попадаем на форум, где упоминается dovecot мне он приглянулся почти полным отсутствием зависимостей

топаем обратно в порты и смотрим что пишут
а пишут хорошо - дескать такой растакой хороший сервак, поддерживает такие растакие фичи, и еще It supports Maildirs and mbox formats - то что надо.

обновляем порты

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

#csup -L 2 /usr/local/etc/ports-supfile -h `fastest_cvsup -Qcru`
ставим, идем конфигурять и молча поднимаем челюсть с пола

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

# ls -lh /usr/local/etc/dovecot.conf
-rw-r--r--  1 root  wheel    49K  3 янв 16:55 /usr/local/etc/dovecot.conf
с момента написания статьи конфиг еще прибавил в весе (кстати, за статейку отдельное спасибо ув. тов. Лису)

подняв челюсть идем куда шли и там для начала рубим хвосты - на почту будет логиниться сам рут, так что не надо нам всяких нехороших товарищей снаружи
говорим

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

#cat /usr/local/etc/dovecot.conf
...
# слушать тока внутреннюю локалку и петлю
listen = 192.168.0.1 127.0.0.1
...
# откуда читать почту, где хранити индексы и проч
mail_location = mbox:~/mail:INBOX=/var/mail/%u:INDEX=/var/indexes/%
...
Указание localhost в параметре listen приведет к падению на запуске, если отключен IPv6
Кроме того, комментим блок авторизации pam и приводим блоки passwd к таком виду

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

    passdb passwd {
     # [blocking=yes] - See userdb passwd for explanation
     #args =
   }

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

   userdb passwd {
     # [blocking=yes] - By default the lookups are done in the main dovecot-auth
     # process. This setting causes the lookups to be done in auth worker
     # proceses. Useful with remote NSS lookups that may block.
     # NOTE: Be sure to use this setting with nss_ldap or users might get
     # logged in as each others!
   #  args = blocking=yes # комментируем эту строчку
   }
и вскоре понимаем, что приехали. система показывает нам палец

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

375 # Valid UID range for users, defaults to 500 and above. This is mostly
 376 # to make sure that users can't log in as daemons or other system users.
 377 # Note that denying root logins is hardcoded to dovecot binary and can't
 378 # be done even if first_valid_uid is set to 0.
 379 first_valid_uid = 1000
 380 #last_valid_uid = 0
запрет на логин рута вшит в бинарник, а его не почешешь
ну и не надо! обойдусь! не очень то и хотелось!
Мы пойдем другим путем!

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

# cd /usr/ports/mail/dovecot
# make fetch extract patch
# du -hd1 work/dovecot-1.2.8/
 24M    work/dovecot-1.2.8/src
1,0M    work/dovecot-1.2.8/doc
 30M    work/dovecot-1.2.8/
#cd work/dovecot-1.2.8/src
неприятно ну да ладно где наша не пропадала
grep и vim в руки и вперед

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

#grep -rin root ./work/dovecot-1.2.8/src | vim -
#vim ...
#grep -rin deny ./work/dovecot-1.2.8/src
....
за такими делами прошло какое то время
попутно прыгая по инету я наткнулся на еще одну статейку
ну, дудку в зубы, барабан на шею, и я потопал в telnet, следя за логами
логино рутом вызвал отказ в авторизации и бурю эмоций в логах:

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

Jan  3 16:38:06 freebsp dovecot: pop3-login: Aborted login (auth failed, 1 attempts): user=<root>, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, secured
Jan  3 16:38:32 freebsp dovecot: dovecot: User root not allowed to log in using UNIX UID 0 (root logins are never allowed)
Jan  3 16:38:32 freebsp dovecot: pop3-login: Internal login failure (auth failed, 1 attempts): user=<root>, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, secured
Да это то что надо!!! ("более того, это ВСЕ что надо" - подумал я)

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

# grep -rn "UNIX UID" ./work/dovecot-1.2.8/src/
./work/dovecot-1.2.8/src/master/mail-process.c:122:             i_error("User %s not allowed to log in using UNIX UID 0 "
./work/dovecot-1.2.8/src/master/mail-process.c:132:                     "UNIX UID %s%s (see http://wiki.dovecot.org/UserIds)",
./work/dovecot-1.2.8/src/master/mail-process.c:145:                     "UNIX UID %s%s (see %s in config file)",
# cat ./work/dovecot-1.2.8/src/master/mail-process.c
...
121         /*if (uid == 0) {
122                 i_error("User %s not allowed to log in using UNIX UID 0 "
123                         "(root logins are never allowed)", user);
124                 return FALSE;
125         }//*/
...
я закомментил этот блок кода - судя по всему, именно отсюда исходила ругня. Теперь по идее руту разрешен логин в почту но сначала надо применить изменения - собрать сервак, посмтавить его и не забыть сделать бекап сделанных изменений

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

# pwd 
/usr/ports/mail/dovecot
# cp work/dovecot-1.2.8/src/master/mail-process.c ./
# diff work/dovecot-1.2.8/src/master/mail-process.c mail-process.c >> patc1.diff
# make deinstall && meka install clean
# /usr/local/etc/rc.d/dovecot start 
опять логинимся через телнет и орпять неудача - на это этот раз без объяснений(в тот раз выдавал ошибку авторизации)
в логах видим фатал

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

Jan  3 16:55:47 freebsp dovecot: pop3-login: Login: user=<root>, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, secured
Jan  3 16:55:47 freebsp dovecot: POP3(root): Fatal: Running as root isn't permitted
Jan  3 16:55:47 freebsp kernel: Jan  3 16:55:47 freebsp dovecot: POP3(root): Fatal: Running as root isn't permitted
я уже видел эти строки во время похода по исходникам. поэтому освежаем в памяти адрес и делаем грязное дело

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

# pwd
# pwd 
/usr/ports/mail/dovecot
# grep -rn "isn't permitted" ./work/dovecot-1.2.8/src/ 
./work/dovecot-1.2.8/src/lib/restrict-access.c:336:                             i_fatal("Running as root isn't permitted");
./work/dovecot-1.2.8/src/lib/restrict-access.c:352:                             i_fatal("GID 0 isn't permitted");
# cat ./work/dovecot-1.2.8/src/lib/restrict-access.c
...
333 /*      if (uid != 0 || disallow_root) {
334                 if (setuid(0) == 0) {
335                         if (uid == 0)
336                                 i_fatal("Running as root isn't permitted");
337                         i_fatal("We couldn't drop root privileges");
338                 }
339         }*/
...
# cp ./work/dovecot-1.2.8/src/lib/restrict-access.c ./
# cp -f mail-process.c work/dovecot-1.2.8/src/master/mail-process.c
# make deinstall && make install
# /usr/local/etc/rc.d/dovecot start 
пробуем логиниться телнетом и опять неудача - только теперь ругается на то что наш уид слишком большой. решается просто

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

# grep first_ /usr/local/etc/dovecot.conf
# be done even if first_valid_uid is set to 0.
first_valid_uid = 0
first_valid_gid = 0
# telnet localhost 110
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK Dovecot ready.
user root
+OK
pass MyPass
+OK Logged in.
list
+OK 4702 messages:
...
.
quit
+OK Logging out.
Connection closed by foreign host.
почти все - голубятня стоит и пускает рута по pop3
пробуем imap

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

# telnet localhost 143                                      [/usr/ports/mail/dovecot]root@freebsp.homeip.net
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE AUTH=PLAIN AUTH=LOGIN] Dovecot ready.
LOGIN root MyPass
LOGIN BAD Error in IMAP command received by server.
LOGIN root@192.168.0.1 MyPass
LOGIN BAD Error in IMAP command received by server.
NOOP
NOOP BAD Error in IMAP command received by server.
странно. ругается на все. подозреваю, что дело в переводе строки, но точнее не копал. как что то решится - отпишусь.

PS надеюсь, кому то сие будет полезно/интересно

===================
как оказалось, клиент нормально подключается - аутглюк уже стянул всю почту и по pop3 и по imap
Человек начинает получать первые наслаждения от знакомства с unix системами. Ему нужно помочь - дальше он сможет получать наслаждение самостоятельно ©
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!

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

Re: получение системной почты по imap

Непрочитанное сообщение Alex Keda » 2010-01-04 2:31:27

ну вот видишь =)
=========
просто у тебя изначально неправильный подход к задаче.
все побоялись увязнуть в длинном треде =)
Убей их всех! Бог потом рассортирует...

Аватара пользователя
FreeBSP
майор
Сообщения: 2020
Зарегистрирован: 2009-05-24 20:20:19
Откуда: Москва

Re: получение системной почты по imap

Непрочитанное сообщение FreeBSP » 2010-01-04 23:08:12

Чем же неправилен мой подход к задаче?

PS обычно сначала проще побродить и поспрашивать - почти все уже решалось до нас
а если не отвечают, то зачастую проще забить))
Человек начинает получать первые наслаждения от знакомства с unix системами. Ему нужно помочь - дальше он сможет получать наслаждение самостоятельно ©
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!

Аватара пользователя
hizel
дядя поня
Сообщения: 9031
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: получение системной почты по imap

Непрочитанное сообщение hizel » 2010-01-15 15:26:18

не осилил алиасы? :D
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

Аватара пользователя
FreeBSP
майор
Сообщения: 2020
Зарегистрирован: 2009-05-24 20:20:19
Откуда: Москва

Re: получение системной почты по imap

Непрочитанное сообщение FreeBSP » 2010-01-15 15:36:42

wtf??
почта для меня темный лес
разорил с разгону голубятню :%) зато все работет как и хотелось :-P

дядя hizel, дядя hizel, расскажи про алиасы :roll:
или направь пинком в нужную строну)
PS после бессонной ночи плющит, сорри
Человек начинает получать первые наслаждения от знакомства с unix системами. Ему нужно помочь - дальше он сможет получать наслаждение самостоятельно ©
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!

Аватара пользователя
hizel
дядя поня
Сообщения: 9031
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: получение системной почты по imap

Непрочитанное сообщение hizel » 2010-01-15 15:40:49

открывать почту для root - <...> терминальной стадии! :)

осиль алиасы:

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

>cat /etc/mail/aliases | grep root
postmaster: root
_dhcp:  root
_pflogd: root
bin:    root
bind:   root
daemon: root
games:  root
kmem:   root
man:    root
news:   root
nobody: root
operator: root
pop:    root
proxy:  root
sshd:   root
system: root
toor:   root
tty:    root
uucp:   root
abuse:  root
# noc:          root
security:       root
ftp:            root
root:   hizel
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

Аватара пользователя
FreeBSP
майор
Сообщения: 2020
Зарегистрирован: 2009-05-24 20:20:19
Откуда: Москва

Re: получение системной почты по imap

Непрочитанное сообщение FreeBSP » 2010-01-15 15:50:34

Спасибо, дядя hizel
вечерком осилю
Человек начинает получать первые наслаждения от знакомства с unix системами. Ему нужно помочь - дальше он сможет получать наслаждение самостоятельно ©
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!