Показ дописів із міткою mail. Показати всі дописи
Показ дописів із міткою mail. Показати всі дописи

doveadm видалення старих листів з скриньок

Видалення з усіх (-А) скриньок старших за 90 і 60 днів, з папок Trash і Junk відповідно.

doveadm expunge -A mailbox Trash savedbefore 90d 
doveadm expunge -A mailbox Junk savedbefore 60d

Видалення з вказаної скриньки

doveadm expunge mailbox Junk -u email@domain.com savedbefore 60d

Синхронізація двох imap-скриньок

Синхронізація двох imap-скриньок. Дуже корисна утиліта при переносах поштових серверів, доменів, скриньок.

imapsync --host1 127.0.0.1 --user1 mail.server1.com --password1 pa$$w0rd \
--host2 mail.server2.com --user2 email@domain2.com --password2 pa$$w0rd

postfix: вибірка з maillog по e-mail

postfix має своєрідний формат логів і вибирати потрібну інформацію потрібно в два проходи. Ось команда, яка робить гарну вибірку по потрібному е-мейлу.

grep 'to=<email@domain.com' /var/log/mail.log | cut -d ' ' -f 6 | grep -f - /var/log/mail.log > email@domain.com.txt

Очищення imap скриньки від старих листів

 
Прийшло таке дивне робоче повідомлення, але здивування було більше, коли в скрині виявилось 103 тисячі повідомлень.

Ділюсь скриптом, який за 5 хвилин видалив 70 тисяч повідомлень.


#!/usr/bin/python

MAIL_SERVER = 'mail.server.com'
USERNAME = 'login@domain.com'
PASSWORD = 'pass'
MAILBOX = 'INBOX'
MAX_DAYS = 392 # Deletes messages older than a week

import imaplib
import datetime

today = datetime.date.today()
cutoff_date = today - datetime.timedelta(days=MAX_DAYS)
before_date = cutoff_date.strftime('%d-%b-%Y')

search_args = '(BEFORE "%s")' % before_date

imap = imaplib.IMAP4(MAIL_SERVER)
imap.login(USERNAME, PASSWORD)
imap.select(MAILBOX)

typ, data = imap.search(None, 'ALL', search_args)

for num in data[0].split():
    print num
    imap.store(num, '+FLAGS', '\\Deleted')

imap.expunge()

imap.close()
imap.logout()