В статье будет описана работа с протоколом IMAP, на примере очистки папки сообщений от системы мониторинга, в моём случае эта папка называется alerts.

1. Чтобы подключиться к почтовому серверу, работающему на IMAP используя шифрование SSL/TLS необходимо в консоли выполнить команду:

openssl s_client -crlf -ign_eof -connect mail.mailserver.com:993

сервер выдаст кучу информации, последней строкой будет

* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE AUTH=PLAIN AUTH=LOGIN AUTH=CRAM-MD5 AUTH=DIGEST-MD5] MAIL

2. Далее, авторизуемся:

. login [email protected] мойпароль

Сервер должен ответить:

. OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS SPECIAL-USE BINARY MOVE] Logged in

В противном случае неверное имя или пароль и нужно будет снова переходить к п.1

3. Получаем список папок нашего аккаунта:

. list """*"

Ответом должно быть что-то вроде этого:

* LIST (\HasNoChildren) "." blabla
* LIST (\HasNoChildren) "." Trash
* LIST (\HasNoChildren) "." Drafts
* LIST (\HasNoChildren) "." Sent
* LIST (\HasNoChildren) "." alerts
* LIST (\HasNoChildren) "." INBOX
. OK List completed.

4. Получить количество сообщений в любой из вышеуказанных папок можно командой:

. status alerts (messages)

Вместо alerts может быть любая папка из списка выше. В моём случае, сообщения из nagios-а храняться в папке alerts, поэтому чистить буду именно эту папку.

5. Удаляем папку alerts, где, в моём случае, хранятся сообщения от системы мониторинга:

. delete alerts

Снова должно быть сообщение OK

6. Создаём папку alerts снова:

. create alerts

Таким образом я быстро удалил 16к писем и почтовик прогрузил оставшиеся 500 достаточно быстро.

7. Отключение

. logout

P.S. если Вы используется Mozilla Thunderbird, также может потребоваться удалить вручную файлы этой папки из ~/.thunderbird/BLABLA.default/ImapMail/mail.mailserver.com/ (alerts.msf и alerts)

Генерируем приватный ключ:

openssl genrsa -out /etc/exim/dkim.key 2048

На основе приватного, генерируем публичную часть ключа:

openssl rsa -in dkim.key -pubout

В текущей папке файл dkim.key – приватный ключ и тот хеш, что будет выведен на экран – публичный ключ.

Копируем содержимое публичного ключа и добавляем следующую запись в DNS для необходимого домена:

mailxxx._domainkey IN TXT "v=DKIM1; g=*; k=rsa; p=хеш_публичного_ключа_без_пробелов_и_переносов"

 

Копируем и добавляем её на NS сервер в зону нашего домена

 

Меняем права на приватный ключ, чтобы не было проблем с его доступностью для exim:

chmod 755 /etc/exim/dkim.key

 

Копируем конфигурационный файл exim себе, на случай некорректных изменений:

cp /etc/exim/exim.conf /home/login/

где login — ваш логин

 

Редактируем конфиг exim:

edit /etc/exim/exim.conf

 

Перед секцией remote_smtp добавляем следующее:

# DKIM
DKIM_DOMAIN = ${lc:${domain:$h_from:}}
DKIM_FILE = /etc/exim/dkim.key
DKIM_PRIVATE_KEY = ${if exists{DKIM_FILE}{DKIM_FILE}{0}}
DKIM_SELECTOR = mailxxx
DKIM_CANON = relaxed

 

В секции remote_smtp после директивы driver = smtp добавляем следующее:

dkim_domain = DKIM_DOMAIN
dkim_selector = mailxxx
dkim_private_key = DKIM_PRIVATE_KEY

 

Далее проверяем конфиг

exim -bV

 

и если нет ошибок, то перезапускаем exim:

/etc/init.d/exim restart

 

Проверяем, корректно ли работает подписывание DKIM ключём писем:

exim -v login@gmail.com

 

где вместо login — ваш логин (кэп), gmail.com — если у Вас почта на GMail

и вставляем туда примерно такой текст:

 

From: testmailbox@domain.com
To: login@gmail.com
Subject: Testing mail number1
Text of test message

 

Нажимаем Ctrl+D для отправки, смотрим лог события и выходим по Ctrl+C

В пришедшем письме в исходном сообщении (или по-другому говоря, оригинале) должна присутствовать запись о DKIM, похожая на это:

 

dkim=pass [email protected]
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=domain.com; s=mailxxx;
	h=Date:Message-Id:Subject:To:From; bh=4va6Om8rQAC1qwOFl25GK4pspjLbTsksnYxam9/wNvU=;
	b=c7gPxW6HRILCS3xhlsRYa62SkSPzoAceCzcPDWUFynmUhjvElO/xAGIy3NV3k/RUxoPp2fA2OG6y1sUS5rEbMcW+tMZ0gU4ukO03rvodp9OWHixuV+OFCHih/JjZz2eF9kPPjoT02cD/5Ldj6BlZ77jQc/FGRkQX+1+RmxpFvzM=;