postfix http://blog.ivnish.com/ ru Postfix: Запретить отправку нам же якобы с нашего домена http://blog.ivnish.com/blog/150 <span>Postfix: Запретить отправку нам же якобы с нашего домена</span> <div class="field field--name-field-blog-tags field--type-entity-reference field--label-hidden field__items"> <div class="field__item"><a href="http://blog.ivnish.com/blog/tag/postfix" hreflang="ru">postfix</a></div> </div> <span><span>admin</span></span> <span><time datetime="2026-04-07T11:59:38+05:00" title="вторник, апреля 7, 2026 - 11:59">07.04.2026</time> </span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>Спамеры часто отправляют спам якобы с нашего же домена. Видимо чтобы обмануть какие-то фильтры. То есть вам приходит спам, например с <a href="mailto:support@example.com">support@example.com</a>, хотя у вас на сервере может и такого ящика нет.&nbsp;</p> <ol> <li data-list-item-id="e572e31eb63161a90b074138e6c246a19">Создаем файл <strong>/etc/postfix/sender_access</strong>. Пишем туда: <strong>example.com REJECT Relay from example.com are denied</strong></li> <li data-list-item-id="ed0769dba2cb766febd4652f846aa6328">Компилируем <strong>postmap /etc/postfix/sender_access</strong></li> <li data-list-item-id="ea83522a56bb4f5c95e1965a9c1a563b0">Добавляем в <strong>smtpd_sender_restrictions: check_sender_access hash:/etc/postfix/sender_access</strong>,</li> <li data-list-item-id="e28ac83cd3fbe00744a413442d134f168">Тестируем</li> </ol> <p>Проверить можно с помощью <strong>telnet</strong>:</p> <pre><code class="language-plaintext">telnet example.com 25 HELO test.com MAIL FROM:&lt;support@example.com&gt; RCPT TO:&lt;ivnish@example.com&gt;</code></pre><p>Без этой настройки ответ будет 250, а с ней текст ошибки из файла<br>&nbsp;</p> </div> Tue, 07 Apr 2026 06:59:38 +0000 admin 150 at http://blog.ivnish.com Postfix: удалять письма из очереди, если их не удается отправить http://blog.ivnish.com/blog/149 <span>Postfix: удалять письма из очереди, если их не удается отправить</span> <div class="field field--name-field-blog-tags field--type-entity-reference field--label-hidden field__items"> <div class="field__item"><a href="http://blog.ivnish.com/blog/tag/postfix" hreflang="ru">postfix</a></div> </div> <span><span>admin</span></span> <span><time datetime="2026-04-07T11:51:54+05:00" title="вторник, апреля 7, 2026 - 11:51">07.04.2026</time> </span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>Чтобы письма не висели в очереди неделями, если сервер, куда вы отправляете не доступен, то через указанное количество часов письмо будет удалено из очереди. Добавляем в <strong>main.conf</strong></p> <pre><code class="language-plaintext"># Письмо удалится из очереди, если его не удалось отправить за этот период maximal_queue_lifetime = 12h # Как долго MAILER-DAEMON сообщения остаются в очереди bounce_queue_lifetime = 6h</code></pre></div> Tue, 07 Apr 2026 06:51:54 +0000 admin 149 at http://blog.ivnish.com Postfix: лимит отправки сообщений http://blog.ivnish.com/blog/148 <span>Postfix: лимит отправки сообщений</span> <div class="field field--name-field-blog-tags field--type-entity-reference field--label-hidden field__items"> <div class="field__item"><a href="http://blog.ivnish.com/blog/tag/postfix" hreflang="ru">postfix</a></div> </div> <span><span>admin</span></span> <span><time datetime="2026-04-07T11:47:19+05:00" title="вторник, апреля 7, 2026 - 11:47">07.04.2026</time> </span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>Факапы случаются у всех. Если один из ящиков будет скомпрометирован, то начнется безжалостная рассылка спама в стиле "100500 сообщений в минуту". Чтобы у вас было время среагировать и не попасть в blacklists есть параметр&nbsp;</p> <pre><code class="language-plaintext">default_destination_rate_delay = 10s</code></pre><p>Просто добавляем его в <strong>main.conf</strong></p> <p>Вы можете ограничить отправку очереди с определенной задержкой. В моем случае это одно письмо в 10 секунд. Для небольших компаний этот лимит можно еще больше сделать</p> </div> Tue, 07 Apr 2026 06:47:19 +0000 admin 148 at http://blog.ivnish.com Нужно чтобы письма отправленные с сайта попадали в папку "Отправленные" http://blog.ivnish.com/blog/147 <span>Нужно чтобы письма отправленные с сайта попадали в папку "Отправленные"</span> <div class="field field--name-field-blog-tags field--type-entity-reference field--label-hidden field__items"> <div class="field__item"><a href="http://blog.ivnish.com/blog/tag/postfix" hreflang="ru">postfix</a></div> <div class="field__item"><a href="http://blog.ivnish.com/blog/tag/dovecot" hreflang="ru">dovecot</a></div> <div class="field__item"><a href="http://blog.ivnish.com/blog/tag/sieve" hreflang="ru">sieve</a></div> </div> <span><span>admin</span></span> <span><time datetime="2026-04-07T11:36:43+05:00" title="вторник, апреля 7, 2026 - 11:36">07.04.2026</time> </span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>Если нужно сделать чтобы письма отправленные с сайта попадали в папку "Отправленные", то нужно для этого адреса подключить дополнительно локальную отправку через <strong>dovecot</strong>. Мы каждое отправленное с указанного ящика письмо дублируем в этот же ящик во входящие.</p> <p>0) Нужно установить пакеты <strong>apt install dovecot-sieve dovecot-managesieved dovecot-lmtpd</strong><br>1) Создаем файл <strong>/etc/postfix/transport &gt; <a href="mailto:dogovor@example.com">dogovor@example.com</a> lmtp:unix:private/dovecot-lmtp</strong><br>2) Компилируем его <strong>postmap /etc/postfix/transport</strong><br>3) Создаем <strong>/etc/postfix/sender_bcc &gt; <a href="mailto:dogovor@example.com">dogovor@example.com</a> <a href="mailto:dogovor@example.com">dogovor@example.com</a></strong><br>4) Компилируем его <strong>postmap /etc/postfix/sender_bcc</strong><br>5) В <strong>main.conf</strong> добавляем</p> <pre><code class="language-plaintext"># Дублировать отправленные письма на тот же ящик # Нужно для отправка с сайтов, чтобы потом положить # письмо в отправленные sender_bcc_maps = hash:/etc/postfix/sender_bcc # Для выбранных адресов используем транспорт через dovecot transport_maps = hash:/etc/postfix/transport</code></pre><p>6) В <strong>10-master.conf</strong> проверяем что сервис <strong>lmtp</strong> включен (у меня уже был включен)<br>7) В файл <strong>20-lmtp.conf</strong> пишем</p> <pre><code class="language-plaintext">protocol lmtp { mail_plugins = $mail_plugins sieve lda_mailbox_autocreate = yes lda_mailbox_autosubscribe = yes }</code></pre><p>8) Создаем папку <strong>/var/lib/dovecot/sieve</strong> и даем на нее <strong>777</strong> права (владельцем можно сделать dovecot)<br>9) Создаем файл <strong>sieve: /var/lib/dovecot/sieve/sent.sieve</strong> (даем права на чтение для всех)</p> <pre><code class="language-plaintext">require ["fileinto", "envelope", "imap4flags"]; if envelope :is "to" "dogovor@example.com" { addflag "\\Seen"; fileinto "Sent"; stop; }</code></pre><p>10) Компилируем его <strong>sievec /var/lib/dovecot/sieve/sent.sieve</strong> (даем права на чтение для всех)<br>11) В файл <strong>90-sieve.conf</strong> пишем</p> <pre><code class="language-plaintext">plugin { sieve_before = /var/lib/dovecot/sieve/sent.sieve }</code></pre><p>12) Чтобы не было <strong>ошибки 'user does not exist'</strong> нужно в файле <strong>10-auth.conf</strong> прописать <strong>auth_username_format = %n</strong><br>13) Перезапустить <strong>postfix</strong> и <strong>dovecot</strong></p> </div> Tue, 07 Apr 2026 06:36:43 +0000 admin 147 at http://blog.ivnish.com