LINUX.ORG.RU
ФорумAdmin

Dovecot 1.2.15, дата последнего доступа к почтовому ящику по pop3 или imap


0

1

Добрый день! Есть Postfix и Dovecot 1.2.15, можно ли как то узнать последнюю дату доступа к почтовому ящику по pop3 или imap. Контора большая, текучка кадров тоже, если почта не проверялась более трех месяцев то такой почтовый ящик удаляем. Можно конечно логи парсить каждую ночь, но лучше бы как то поставить hook на событие проверки и вызывался бы мой скрипт который сам делал бы нужные операции. Нашел вот такой вариант http://wiki.dovecot.org/PostLoginScripting но не могу понять где в конфиге dovecot прописать скрипт....


service imap {
    executable = imap imap-postlogin
    process_limit = 256
    vsz_limit = 256M
}

service imap-postlogin {
    executable = script-login /opt/scripts/dovecot_postlogin.sh
    user = root

    unix_listener imap-postlogin {
    }
}

# cat /opt/scripts/dovecot_postlogin.sh 
#!/bin/sh

echo "INSERT INTO \`mailbox\` (\`username\`, \`last_login\`, \`last_ip\`) VALUES('$USER', NOW(), '$IP') ON DUPLICATE KEY UPDATE \`last_login\` = VALUES(\`last_login\`), \`last_ip\` = VALUES(\`last_ip\`)" | mysql \
    -u user --password=xxxxx --connect_timeout=5 -h sql.domain.ru db

exec "$@"

Как-то так...

blind_oracle ★★★★★
()
Ответ на: комментарий от blind_oracle

я уже пробовал этот вариант, не работает

/etc/init.d/dovecot restart Restarting IMAP/POP3 mail server: dovecotError: Error in configuration file /etc/dovecot/dovecot.conf line 67: Unknown section type (section changed in /etc/dovecot/dovecot.conf at line 58) Fatal: Invalid configuration in /etc/dovecot/dovecot.conf failed!

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

ну ладно, видимо, придется писать парсер логов((

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

Ну ты почитай вики-то.

If you want to do something special after authentication, but before beginning the IMAP or POP3 session, you can do this by changing the mail_executable setting to run a script. Below are some examples for what this can be used for.
Значит в 1.х нужно просто сменить mail_executable для службы IMAP. Вот тут все разжевано http://www.iredmail.org/forum/topic379-iredadminpro-support-faq-how-to-track-...
    protocol imap {
        mail_drop_priv_before_exec=yes
        mail_executable = /usr/bin/trackLastLogin.sh imap
        ...
    }

blind_oracle ★★★★★
()
Ответ на: комментарий от blind_oracle

Согласен, невнимательный((( сейчас сделал

protocol imap { mail_drop_priv_before_exec=yes mail_executable = /etc/dovecot/postlogin.sh imap }

devecot рестартится без ошибок, но отваливается imap протокол, логах пишет Feb 28 12:04:57 mail dovecot: dovecot: Fatal: execv(/etc/dovecot/postlogin.sh) failed: Permission denied Feb 28 12:04:57 mail dovecot: dovecot: child 3669 (imap) returned error 84 (exec() failed)

dovecot работает под root, права на выполнение файла /etc/dovecot/postlogin.sh есть, это файл под рутом запускается и работает без ошибок. Куда копать? содержание /etc/dovecot/postlogin.sh #!/bin/sh #echo «rererer» >> /tmp/tracking.log 2>&1 echo «$(date +%Y.%m.%d-%H:%M:%S), $USER, $IP» >> /tmp/tracking.log 2>&1

Заранее спасибо))

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

довкот врядли работает под рутом, особенно при mail_drop_priv_before_exec=yes, попробуй сделать =no, тогда будет рут.

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