{
    "version": "https:\/\/jsonfeed.org\/version\/1.1",
    "title": "Копытов Иван: заметки с тегом ссылка",
    "_rss_description": "Блог ленивого сисадмина",
    "_rss_language": "ru",
    "_itunes_email": "",
    "_itunes_categories_xml": "",
    "_itunes_image": "",
    "_itunes_explicit": "",
    "home_page_url": "https:\/\/kini24.ru\/tags\/ssylka\/",
    "feed_url": "https:\/\/kini24.ru\/tags\/ssylka\/json\/",
    "icon": false,
    "authors": [
        {
            "name": "Копытов Иван",
            "url": "https:\/\/kini24.ru\/",
            "avatar": false
        }
    ],
    "items": [
        {
            "id": "277",
            "url": "https:\/\/kini24.ru\/all\/zamena-bolshih-vlozheniy-v-email-na-ssylku\/",
            "title": "Замена больших вложений в email на ссылку",
            "content_html": "<p>Устанавливаем MIMEDefang:<\/p>\n<pre class=\"e2-text-code\"><code class=\"bash\">apt update\napt install mimedefang -y<\/code><\/pre><p>Правим файл<i> \/etc\/default\/mimedefang<\/i>:<\/p>\n<pre class=\"e2-text-code\"><code class=\"ini\">SOCKET=\/var\/spool\/postfix\/mimedefang\/mimedefang.sock\nMD_ALLOW_GROUP_ACCESS=yes<\/code><\/pre><p>Добавляем пользователя <i>postfix<\/i> в группу <i>defang<\/i>:<\/p>\n<pre class=\"e2-text-code\"><code class=\"bash\">usermod -aG defang postfix<\/code><\/pre><p>Так как postfix работает в chroot-окружении, создаем папку для сокета mimedefang:<\/p>\n<pre class=\"e2-text-code\"><code class=\"bash\">mkdir \/var\/spool\/postfix\/mimedefang<\/code><\/pre><p>Правим<i> \/etc\/postfix\/main.cf<\/i>:<\/p>\n<pre class=\"e2-text-code\"><code class=\"ini\">milter_default_action = accept\nmilter_protocol = 6\nsmtpd_milters = unix:mimedefang\/mimedefang.sock\nnon_smtpd_milters = unix:mimedefang\/mimedefang.sock<\/code><\/pre><p>Теперь нужно добавить следующее в конец функции <i>filter<\/i> в файле<i> \/etc\/mail\/mimedefang-filter<\/i>:<\/p>\n<pre class=\"e2-text-code\"><code class=\"perl\"># Если файл больше указанного размера, он удаляется из письма,\n    # его копия остается на диске, а вместо него предоставляется ссылка, по которой его можно скачать.\n\n    # Максимальный размер вложения (например, 10MB)\n    my $MAX_ATTACHMENT_SIZE = 10 * 1024 * 1024;\n    # Директория для сохранения вложений\n    my $ATTACHMENTS_DIR = &quot;\/var\/mail\/attachments&quot;;\n    # URL, по которому будут доступны вложения\n    my $ATTACHMENTS_URL = &quot;https:\/\/mail.kini24.ru\/attachments&quot;;\n\n    # Создаем директорию, если её нет\n    mkdir $ATTACHMENTS_DIR unless -d $ATTACHMENTS_DIR;\n\n    $size = (stat($entity-&gt;bodyhandle-&gt;path))[7];\n    if ($size &gt; $MAX_ATTACHMENT_SIZE) {\n        md_graphdefang_log(&quot;The attached file $fname is too big, replaced with a link&quot;);\n        return action_replace_with_url($entity,\n            &quot;$ATTACHMENTS_DIR&quot;,\n            &quot;$ATTACHMENTS_URL&quot;,\n            &quot;Размер вложения превысил ограничения сервера, поэтому оно было удалено.\\n&quot; .\n            &quot;Вы можете скачать его по следующей ссылке:\\n\\n&quot; .\n            &quot;_URL_&quot;);\n    }<\/code><\/pre><p>В результате аыполнения функции <i>action_replace_with_url<\/i> в конец письма будет вставлен текст и ссылка для скачивания вложения, а сам файл бует сохранен в папку<i> \/var\/mail\/attachments<\/i>. Надо, кстати, покопаться и найти как вставлять ссылку в текст самого письма. Но пока что оставим как есть.<\/p>\n<p>У меня почтовый и веб-сервер находятся на разных виртуальных машинах, поэтому папку<i> \/var\/mail\/attachments<\/i> надо сделать общей. На почтовом сервере устанавливаем пакет сервера NFS:<\/p>\n<pre class=\"e2-text-code\"><code class=\"bash\">apt install nfs-kernel-server -y<\/code><\/pre><p>Открываем файл<i> \/etc\/exports<\/i> и вписываем в конец файла что-то вроде такого:<\/p>\n<pre class=\"e2-text-code\"><code class=\"plaintext\">\/var\/mail\/attachments 192.168.1.0\/24(rw,sync,no_subtree_check)<\/code><\/pre><p>И выполняем в консоли команду:<\/p>\n<pre class=\"e2-text-code\"><code class=\"bash\">exportfs -a<\/code><\/pre><p>Теперь переходим на веб-сервер и выполняем следующие команды:<\/p>\n<pre class=\"e2-text-code\"><code class=\"bash\">apt update\napt install nfs-common -y<\/code><\/pre><p>Открываем файл<i> \/etc\/fstab<\/i> и дописываем в конец:<\/p>\n<pre class=\"e2-text-code\"><code class=\"plaintext\">192.168.1.12:\/var\/mail\/attachments \/var\/www\/mail\/attachments nfs4 defaults 0 0<\/code><\/pre><p>где 192.168.1.12 — IP-адрес почтового сервера.<br \/>\nДальше выполняем команды:<\/p>\n<pre class=\"e2-text-code\"><code class=\"bash\">mkdir -p \/var\/www\/mail\/attachments\nchown -R www-data:www-data \/var\/www\/mail\/attachments\nmount -a<\/code><\/pre><p>И проверяем что папка смонтировалась:<\/p>\n<pre class=\"e2-text-code\"><code class=\"bash\">ls -l \/var\/www\/mail\/attachments<\/code><\/pre><p>После этого все вложения, которые были удалены из писем, должны стать доступны для скачивания.<\/p>\n",
            "date_published": "2025-03-31T13:45:17+07:00",
            "date_modified": "2025-03-31T13:45:06+07:00",
            "tags": [
                "debian",
                "linux",
                "mimedefang",
                "postfix",
                "вложение",
                "замена",
                "почта",
                "сервер",
                "ссылка"
            ],
            "_date_published_rfc2822": "Mon, 31 Mar 2025 13:45:17 +0700",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "277",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "highlight\/highlight.js",
                    "highlight\/highlight.css"
                ],
                "og_images": []
            }
        }
    ],
    "_e2_version": 4134,
    "_e2_ua_string": "Aegea 11.3 (v4134)"
}