{
    "version": "https:\/\/jsonfeed.org\/version\/1.1",
    "title": "Копытов Иван: заметки с тегом dovecot",
    "_rss_description": "Блог ленивого сисадмина",
    "_rss_language": "ru",
    "_itunes_email": "",
    "_itunes_categories_xml": "",
    "_itunes_image": "",
    "_itunes_explicit": "",
    "home_page_url": "https:\/\/kini24.ru\/tags\/dovecot\/",
    "feed_url": "https:\/\/kini24.ru\/tags\/dovecot\/json\/",
    "icon": false,
    "authors": [
        {
            "name": "Копытов Иван",
            "url": "https:\/\/kini24.ru\/",
            "avatar": false
        }
    ],
    "items": [
        {
            "id": "197",
            "url": "https:\/\/kini24.ru\/all\/vypolnenie-vneshnih-skriptov-v-sieve\/",
            "title": "Выполнение внешних скриптов в Sieve",
            "content_html": "<p>Понадобилось недавно каким-то образом запускать внешний скрипт по приходу определенного письма. Начал поиски как это сделать. В Postfix это можно сделать, используя файл aliases, но мне этот способ не подходил, потому что он подразумевает приход письма на определенный почтовый адрес. С Dovecot сильно не разбирался, но вот информацию по Sieve нашел. Немного времени спустя у меня был наполовину рабочий вариант. Наполовину потому, что выполняемая во внешнем скрипте команда напрочь отказалась принимать отправляемые ей данные. Пришлось немного подправить скрипт в самом Sieve, чтобы получить желаемый результат.<br \/>\nВсе оказалось очень просто. Для начала нужно включить доступ к плагину <i>vnd.dovecot.execute<\/i>. Для этого открываем файл с настройками Sieve \/<i>etc\/dovecot\/conf.d\/90-sieve.conf<\/i> и вносим следующие изменения:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">plugin {\n  sieve_extensions = +vnd.dovecot.execute\n  sieve_plugins = sieve_extprograms\n  sieve_execute_bin_dir = \/etc\/dovecot\/sieve\/execute\n}<\/code><\/pre><p>Все остальные параметры нам не нужны.<br \/>\nВ первой строчке включаем доступ к плагину для пользователей. Можно использовать параметр <i>sieve_global_extensions<\/i>, в таком случае плагин будет работать глобально. Но глобальный скрипт работает ТОЛЬКО если у пользователя нет своего файла скрипта Sieve. Пользователей на моем сервере очень мало, поэтому такой вариант мне не подходит.<br \/>\nВо второй строке мы разрешаем использование плагинов как таковых.<br \/>\nИ, наконец, в третьей строке указывает папку, в которой будут находиться эти самые внешние скрипты. Доступ к этой папке для Dovecot, конечно, нужно обеспечить. Подозреваю, что папку можно и не указывать, а в скрипте Sieve просто указать полный путь к запускаемой программе, но проверять лень.<br \/>\nТеперь остается только написать правило обработки входящих писем. Что-то вроде такого:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># rule:[Test rule]\nif allof (header :contains &quot;from&quot; &quot;test@example.com&quot;, header :contains &quot;subject&quot; &quot;Prikaz 66&quot;)\n{\n        execute &quot;test.sh&quot;;\n\tfileinto &quot;Trash&quot;;\n\tstop;\n}<\/code><\/pre><p>Получив письмо от отправителя <i>test@example.com<\/i> с темой <i>«Prikaz 66»<\/i> Sieve запустит на выполнение скрипт \/<i>etc\/dovecot\/sieve\/execute\/test.sh<\/i>, затем удалит письмо в корзину и завершит обработку писем.<br \/>\nЗнаю, что информации по этой теме в интернете достаточно. Но б<b>о<\/b>льшая часть из нее, как водится, на английском и содержит много воды. Хотелось сделать небольшую выдержку на более привычном русском языке.<\/p>\n",
            "date_published": "2018-06-05T14:59:52+07:00",
            "date_modified": "2018-06-05T14:59:34+07:00",
            "tags": [
                "dovecot",
                "sieve",
                "внешний",
                "запуск",
                "почта",
                "программа",
                "сервер",
                "скрипт"
            ],
            "_date_published_rfc2822": "Tue, 05 Jun 2018 14:59:52 +0700",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "197",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "highlight\/highlight.js",
                    "highlight\/highlight.css"
                ],
                "og_images": []
            }
        },
        {
            "id": "31",
            "url": "https:\/\/kini24.ru\/all\/glyuk-firefox-i-thunderbird\/",
            "title": "Глюк Firefox и Thunderbird",
            "content_html": "<p>Уже не в первый раз сталкиваюсь со странным поведение браузера от Mozilla. Сайт имеет ключи HPKP и указан HSTS, хэши для нового сертификата сгенерированы заново и указаны в файле конфигурации. То есть, по логике, все должно работать. Но увы... При этом все остальные браузеры нормально открывают сайт.<br \/>\nТочно также ведет себя и Thunderbird — просто отказывается подключаться к dovecot по тому же адресу, чтобы принять почту. В логах для обоих высвечивается одна и та же ошибка. Поиск в интернете выдает, что ошибка очень частая, но решений, кроме использования самоподписанных сертификатов, по видимому, нет. А мне лично этого не хотелось бы делать — зачем тогда в системе установлен робот, который следит за актуальностью сертификатов и, при необходимости, обновляет их.<br \/>\nВ прошлый раз я обошелся тем, что использовал для этого конкретного сайта созданный ранее сертификат, но его срок действия заканчивается через несколько дней и использовать его дальше бессмысленно. В этот раз даже пока что в голову не приходит что делать. Надо пошевелить мозгами.<\/p>\n",
            "date_published": "2016-12-23T08:01:58+07:00",
            "date_modified": "2016-12-23T08:04:40+07:00",
            "tags": [
                "bad",
                "certificate",
                "dovecot",
                "error",
                "failure",
                "firefox",
                "HPKP",
                "hsts",
                "key",
                "mozilla",
                "pinning",
                "pkix",
                "thunderbird",
                "ошибка",
                "подключение",
                "сертификат"
            ],
            "_date_published_rfc2822": "Fri, 23 Dec 2016 08:01:58 +0700",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "31",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": []
            }
        }
    ],
    "_e2_version": 4134,
    "_e2_ua_string": "Aegea 11.3 (v4134)"
}