На одном из почтовых серверов попросили увеличить лимит на размер вложений. Сказали, что 10 Мб им не хватает. Немного удивился, потому что по умолчанию ставлю лимит на размер письма 20 Мб. Считаю это универсальным размером. Разрешение пересылки больших файлов без квот на почтовые ящики очень быстро приводит к разрастанию почтовой базы. Особенно, когда кто-то начинает макеты, презентации и прочие большие файлы по почте ежедневно гонять.
Сходил, проверил. Ограничение действительно стояло 20 Мб. Смысл тут в том, что итоговый размер письма может быть существенно больше, чем объём вложения. Всё дело в кодировании вложений для пересылки в письме. Они передаются как часть письма в виде печатных символов стандартной кодовой таблицы ASCII.
Для кодирования вложений в электронной почте обычно используют методы base64 и quoted-printable, описанные в стандарте MIME. Их там больше представлено, но насколько я знаю, в современной почте используют именно эти два. При кодировании по методу base64, а чаще всего используется именно он, получается в среднем увеличение размера вложения в 1,3 раза. Но бывает и значительно больше. Это зависит от особенностей исходного файла и метода кодирования. При использовании quoted-printable увеличение размера может доходить до 3-х раз.
Посмотреть информацию о вложении и методе кодирования можно, сохранив письмо и открыв любым текстовым редактором. Там будут примерно такие заголовки:
Это кодированный pdf файл, который в исходном тексте письма представлен в виде ASCII символов.
Так что когда ставите ограничение на размер письма, имейте ввиду, что этот размер может существенно отличаться от итогового размера вложения, которое сможет пролезть в этот лимит.
#mailserver
Сходил, проверил. Ограничение действительно стояло 20 Мб. Смысл тут в том, что итоговый размер письма может быть существенно больше, чем объём вложения. Всё дело в кодировании вложений для пересылки в письме. Они передаются как часть письма в виде печатных символов стандартной кодовой таблицы ASCII.
Для кодирования вложений в электронной почте обычно используют методы base64 и quoted-printable, описанные в стандарте MIME. Их там больше представлено, но насколько я знаю, в современной почте используют именно эти два. При кодировании по методу base64, а чаще всего используется именно он, получается в среднем увеличение размера вложения в 1,3 раза. Но бывает и значительно больше. Это зависит от особенностей исходного файла и метода кодирования. При использовании quoted-printable увеличение размера может доходить до 3-х раз.
Посмотреть информацию о вложении и методе кодирования можно, сохранив письмо и открыв любым текстовым редактором. Там будут примерно такие заголовки:
Mime-Version: 1.0
Content-Type: application/pdf; name="file_credit50198.pdf"
Content-Transfer-Encoding: Base64
Content-Disposition: attachment; filename="file_credit50198.pdf"
Это кодированный pdf файл, который в исходном тексте письма представлен в виде ASCII символов.
Так что когда ставите ограничение на размер письма, имейте ввиду, что этот размер может существенно отличаться от итогового размера вложения, которое сможет пролезть в этот лимит.
#mailserver
Тема мониторинга imap сервера Dovecot всегда обходила меня стороной. Я даже и не знал, что там есть встроенный модуль, который умеет отдавать кучу своих метрик. Не видел особой надобности. Я всегда настраивал fail2ban на перебор учёток Dovecot и мониторинг доступности TCP портов службы. В общем случае мне этого достаточно.
На днях читал новость про обновления в очередной новой версии Dovecot и увидел там изменения в модуле статистики. Заинтересовался и решил изучить его. Оказалось, там всё не так просто, как думалось на первый взгляд. Ожидал там увидеть что-то типа того, что есть в статистике Nginx или Php-fpm. А на самом деле в Dovecot очень много всевозможных метрик и их представлений: в линейных, логарифмических, средних, перцинтильных видах. Плюс фильтры, наборы метрик и т.д. Постараюсь кратко саму суть рассказать. А позже, скорее всего, сделаю небольшой шаблон для Zabbix и настрою мониторинг.
Включаем мониторинг и добавляем некоторый набор метрик, который описывает документация, как пример. Добавляем в конфиг Dovecot:
Перезапускаем Dovecot. Метрики можно увидеть по HTTP на порту сервера 9900 (не забудьте настроить ограничение на firewall) или в консоли:
Описание увиденных полей смотрите в документации, в разделе listing-statistic. Все метрики, что не count, выводятся в микросекундах. Я долго не мог понять, что это за огромные числа и зачем они нужны, пока не нашёл описание в документации.
В данном примере мы вывели статистику по успешным и неуспешным аутентификациям, по всем imap и smtp (не понял, что это за smtp метрики, у меня они по нулям) командам, и по успешным доставкам почты в ящики. Полный список событий, которые можно выводить, смотрите в разделе Events. А возможности фильтрации в Event Filtering. В принципе, тут будет вся информация по поводу метрик и их вывода.
Я посмотрел все возможные метрики и прикинул, что реально полезных, за которыми стоит следить, не так много. Перечислю их:
1️⃣ Uptime сервера. Выводится по умолчанию, отдельно настраивать эту метрику не надо. Соответственно, можно делать триггер на перезапуск сервера.
2️⃣ Количество успешных и неудачных аутентификаций. Причём интересны не абсолютные значения, а изменение в минуту. Сделать триггер на превышение среднего значения, например, в 1,5-2 раза. Если у вас резко выросли аутентификации, то, возможно, кто-то наплодил ящиков и заходит в них. А если много неудачных попыток, то, возможно, fail2ban сломался и начался подбор паролей.
3️⃣ Число успешных доставок почты. Если резво выросло число доставленных писем на каком-то большой интервале, то это повод обратить внимание. Интервал надо брать побольше, чем минута, иначе на какие-то легитимные рассылки будет реакция. Взять, думаю, надо интервал 30-60 минут и сравнивать изменения на нём. Можно и накопительную метрику сделать за сутки, чтобы быстро оценить количество входящей почты.
Вот, в принципе, и всё. Остальные метрики это уже тонкая настройка отдельных служб или слежение за производительностью. Dovecot умеет считать выполнение в микросекундах каждой своей команды и выводить min, max, avg, median, персинтили. Можно очень гибко следить за производительностью в разрезе отдельной imap команды, если для вас это важно.
#dovecot #mailserver #мониторинг
На днях читал новость про обновления в очередной новой версии Dovecot и увидел там изменения в модуле статистики. Заинтересовался и решил изучить его. Оказалось, там всё не так просто, как думалось на первый взгляд. Ожидал там увидеть что-то типа того, что есть в статистике Nginx или Php-fpm. А на самом деле в Dovecot очень много всевозможных метрик и их представлений: в линейных, логарифмических, средних, перцинтильных видах. Плюс фильтры, наборы метрик и т.д. Постараюсь кратко саму суть рассказать. А позже, скорее всего, сделаю небольшой шаблон для Zabbix и настрою мониторинг.
Включаем мониторинг и добавляем некоторый набор метрик, который описывает документация, как пример. Добавляем в конфиг Dovecot:
service stats {
inet_listener http {
port = 9900
}
}
metric auth_success {
filter = event=auth_request_finished AND success=yes
}
metric auth_failures {
filter = event=auth_request_finished AND NOT success=yes
}
metric imap_command {
filter = event=imap_command_finished
group_by = cmd_name tagged_reply_state
}
metric smtp_command {
filter = event=smtp_server_command_finished
group_by = cmd_name status_code duration:exponential:1:5:10
}
metric mail_delivery {
filter = event=mail_delivery_finished
group_by = duration:exponential:1:5:10
}
Перезапускаем Dovecot. Метрики можно увидеть по HTTP на порту сервера 9900 (не забудьте настроить ограничение на firewall) или в консоли:
# doveadm -f table stats dump
Описание увиденных полей смотрите в документации, в разделе listing-statistic. Все метрики, что не count, выводятся в микросекундах. Я долго не мог понять, что это за огромные числа и зачем они нужны, пока не нашёл описание в документации.
В данном примере мы вывели статистику по успешным и неуспешным аутентификациям, по всем imap и smtp (не понял, что это за smtp метрики, у меня они по нулям) командам, и по успешным доставкам почты в ящики. Полный список событий, которые можно выводить, смотрите в разделе Events. А возможности фильтрации в Event Filtering. В принципе, тут будет вся информация по поводу метрик и их вывода.
Я посмотрел все возможные метрики и прикинул, что реально полезных, за которыми стоит следить, не так много. Перечислю их:
1️⃣ Uptime сервера. Выводится по умолчанию, отдельно настраивать эту метрику не надо. Соответственно, можно делать триггер на перезапуск сервера.
2️⃣ Количество успешных и неудачных аутентификаций. Причём интересны не абсолютные значения, а изменение в минуту. Сделать триггер на превышение среднего значения, например, в 1,5-2 раза. Если у вас резко выросли аутентификации, то, возможно, кто-то наплодил ящиков и заходит в них. А если много неудачных попыток, то, возможно, fail2ban сломался и начался подбор паролей.
3️⃣ Число успешных доставок почты. Если резво выросло число доставленных писем на каком-то большой интервале, то это повод обратить внимание. Интервал надо брать побольше, чем минута, иначе на какие-то легитимные рассылки будет реакция. Взять, думаю, надо интервал 30-60 минут и сравнивать изменения на нём. Можно и накопительную метрику сделать за сутки, чтобы быстро оценить количество входящей почты.
Вот, в принципе, и всё. Остальные метрики это уже тонкая настройка отдельных служб или слежение за производительностью. Dovecot умеет считать выполнение в микросекундах каждой своей команды и выводить min, max, avg, median, персинтили. Можно очень гибко следить за производительностью в разрезе отдельной imap команды, если для вас это важно.
#dovecot #mailserver #мониторинг
Я написал очень подробный обзор нового почтового сервера от ГК Астра — RuPost:
⇨ Установка и настройка почтового сервера RuPost
Описал основные возможности, сделал пошаговую инструкцию по базовой настройке, подключился различными клиентами. Статья позволит получить общее представление, что это за система, из чего состоит и как с ней работать. В статье много пояснений и картинок для этого.
Кратко скажу следующее:
▪ RuPost построен на базе open source решений: haproxy, postfix, dovecot, sogo и др.
▪ Установка в несколько действий в консоли (установка deb пакета), управление в браузере через самописную админку.
▪ Поддерживается только ОС Astra 1.7.
▪ Интеграция и одновременная работа с несколькими службами каталогов – ALD Pro, Active Directory, FreeIPA.
▪ Почта хранится в формате maildir.
▪ Есть возможность организовать HA cluster.
▪ Настройка системы выполняется на основе шаблонов конфигураций, которые можно готовить заранее, сохранять, выгружать. Есть несколько готовых шаблонов от разработчиков. Формат шаблонов YAML.
▪ RuPost поддерживает общие адресные книги и календари.
▪ Есть механизм миграции с сервера Microsoft Exchange, есть плагин для MS Outlook для работы с календарями и адресными книгами в RuPost. Есть механизм работы одновременно с Exchange, чтобы выполнить поэтапный переход от одного сервера к другому.
Если всё аккуратно настроить, то получается удобный почтовый сервер с автоматической настройкой пользователей. Я проверял на примере Active Directory. Интеграция настраивается легко и быстро. Потом доменный пользователь без проблем запускает клиента, получает все настройки автоматически и работает с почтой через встроенную аутентификацию.
❗️Сразу скажу, что цен в открытом доступе нет и мне их не сообщили. Только по запросу. Так что обсуждать их не представляется возможным. Лицензирование по конечным пользователям. Сколько пользователей, столько надо лицензий. Сами сервера и подключения к ним не лицензируются.
#mailserver #отечественное
⇨ Установка и настройка почтового сервера RuPost
Описал основные возможности, сделал пошаговую инструкцию по базовой настройке, подключился различными клиентами. Статья позволит получить общее представление, что это за система, из чего состоит и как с ней работать. В статье много пояснений и картинок для этого.
Кратко скажу следующее:
▪ RuPost построен на базе open source решений: haproxy, postfix, dovecot, sogo и др.
▪ Установка в несколько действий в консоли (установка deb пакета), управление в браузере через самописную админку.
▪ Поддерживается только ОС Astra 1.7.
▪ Интеграция и одновременная работа с несколькими службами каталогов – ALD Pro, Active Directory, FreeIPA.
▪ Почта хранится в формате maildir.
▪ Есть возможность организовать HA cluster.
▪ Настройка системы выполняется на основе шаблонов конфигураций, которые можно готовить заранее, сохранять, выгружать. Есть несколько готовых шаблонов от разработчиков. Формат шаблонов YAML.
▪ RuPost поддерживает общие адресные книги и календари.
▪ Есть механизм миграции с сервера Microsoft Exchange, есть плагин для MS Outlook для работы с календарями и адресными книгами в RuPost. Есть механизм работы одновременно с Exchange, чтобы выполнить поэтапный переход от одного сервера к другому.
Если всё аккуратно настроить, то получается удобный почтовый сервер с автоматической настройкой пользователей. Я проверял на примере Active Directory. Интеграция настраивается легко и быстро. Потом доменный пользователь без проблем запускает клиента, получает все настройки автоматически и работает с почтой через встроенную аутентификацию.
❗️Сразу скажу, что цен в открытом доступе нет и мне их не сообщили. Только по запросу. Так что обсуждать их не представляется возможным. Лицензирование по конечным пользователям. Сколько пользователей, столько надо лицензий. Сами сервера и подключения к ним не лицензируются.
#mailserver #отечественное
Server Admin
Установка и настройка почтового сервера RuPost
Пошаговое руководство по установке и настройке почтового сервера RuPost, в том числе подключение клиентов, календарей, адресных книг.
Вчера вечером проскочила интересная новость на opennet. Я их обычно не комментирую, если они напрямую не касаются меня. В данном случае это не так. Компания Nextcloud GmbH объявила о присоединении почтового клиента Roundcube. Я этот веб клиент использую по умолчанию для всех настроенных почтовых серверов последние лет 10. Может даже больше. До этого пользовался Squirrelmail. Roundcube один из самых популярных, если не самый популярный, автономный веб клиент для почтовых серверов.
Новость на Opennet:
⇨ https://www.opennet.ru/opennews/art.shtml?num=60197
Оригинал:
⇨ https://nextcloud.com/blog/open-source-email-pioneer-roundcube-comes-aboard-nextcloud/
Что по факту будет, пока не понятно. Заявляют, что веб клиент так и будет обособленным, развитие продолжится, команда останется и даже увеличится, слияния кодовых баз не будет. Тогда не понятно, зачем покупали. Надеюсь, что продукт получит новый виток развития, а не заглохнет, как конкурент собственной разработки Nextcloud Mail.
Я ещё почему обратил внимание и подсветил эту новость. В opennet показали недавние проблемы с безопасностью у Roundcube. Там регулярно находят критические уязвимости. Я очень не люблю оставлять веб почту в открытый доступ. Это всегда риск её компрометации. А если начинаешь ограничивать доступ, то сильно падает удобство использования.
Если в условном postfix и dovecot критические уязвимости я вообще не припоминаю, и их можно спокойно оставлять в открытом доступе, то с веб клиентами это не так. C Roundcube всё время приходится следить за обновлениями и своевременно обновлять. Если есть возможность, я закрываю доступ к веб почте либо vpn, либо basic_auth. Пользователям это не нравится. Иногда руководство в приказном порядке настаивает на открытом прямом доступе, принимая риски.
В общем, если у вас веб почта в открытом доступе, уделяйте ей пристальное внимание и по возможности изолируйте от остальных сервисов. Это прям реальная дыра в инфраструктуру. Почтовые сервера чаще всего компрометируют через веб клиенты.
#mailserver
Новость на Opennet:
⇨ https://www.opennet.ru/opennews/art.shtml?num=60197
Оригинал:
⇨ https://nextcloud.com/blog/open-source-email-pioneer-roundcube-comes-aboard-nextcloud/
Что по факту будет, пока не понятно. Заявляют, что веб клиент так и будет обособленным, развитие продолжится, команда останется и даже увеличится, слияния кодовых баз не будет. Тогда не понятно, зачем покупали. Надеюсь, что продукт получит новый виток развития, а не заглохнет, как конкурент собственной разработки Nextcloud Mail.
Я ещё почему обратил внимание и подсветил эту новость. В opennet показали недавние проблемы с безопасностью у Roundcube. Там регулярно находят критические уязвимости. Я очень не люблю оставлять веб почту в открытый доступ. Это всегда риск её компрометации. А если начинаешь ограничивать доступ, то сильно падает удобство использования.
Если в условном postfix и dovecot критические уязвимости я вообще не припоминаю, и их можно спокойно оставлять в открытом доступе, то с веб клиентами это не так. C Roundcube всё время приходится следить за обновлениями и своевременно обновлять. Если есть возможность, я закрываю доступ к веб почте либо vpn, либо basic_auth. Пользователям это не нравится. Иногда руководство в приказном порядке настаивает на открытом прямом доступе, принимая риски.
В общем, если у вас веб почта в открытом доступе, уделяйте ей пристальное внимание и по возможности изолируйте от остальных сервисов. Это прям реальная дыра в инфраструктуру. Почтовые сервера чаще всего компрометируют через веб клиенты.
#mailserver
Для тех, кто сам настраивает и обслуживает почтовые сервера, хочу предложить удобный инструмент для диагностики - Swaks (Swiss Army Knife for SMTP). В нём нет чего-то особенного, что вы не смогли бы выполнить с помощью прямых запросов через telnet. Но со swaks удобнее, быстрее и проще, и при этом вы видите полный лог общения с почтовым сервером, как если бы вы с ним общались по telnet.
Утилита есть в стандартных репозиториях популярных систем, так что с установкой никаких проблем:
Можете сразу же проверить свой сервер на возможность отправки сообщений без аутентификации:
Корректно настроенный сервер должен вернуть ошибку, причём её код будет зависеть от конкретных настроек почтового сервера. А вот реальная отправка письма с аутентификацией. Пароль будет запрошен в консоли:
С помощью похожего запроса можно удобно проверить поддерживаемые методы аутентификации. Например, CRAM-MD5:
Сервер ответил, что подобный механизм аутентификации не поддерживает.
Если не хочется каждый раз указывать данные аутентификации, их можно добавить в файл
Чтобы программа приняла этот файл, у него должен быть доступ только для пользователя, от которого вы запускаете программу.
В качестве тела письма можно использовать текстовый файл. Это удобно, если нужно проверить работу антивируса или антиспама. К примеру, берём файл EICAR-Test-File, на который все антивирусы дают реакцию, как на вирус, и отправляем его содержимое письмом:
Gmail не принял письмо: "552 5.7.0 This message was blocked because its content presents a potential security issue."
Тело письма можно и сразу в консоли передать через ключ
В общем, инструмент простой, универсальный, интуитивно понятный. Автор поддерживает и регулярно обновляет. Можно использовать и в каких-то велосипедах на bash. Swaks умеет работать через различные прокси, использовать tls сертификаты с выбором шифров и некоторых настроек.
⇨ Исходники
#mailserver
Утилита есть в стандартных репозиториях популярных систем, так что с установкой никаких проблем:
# apt install swaks
Можете сразу же проверить свой сервер на возможность отправки сообщений без аутентификации:
# swaks --to user@example.com --server mail.example.net
Корректно настроенный сервер должен вернуть ошибку, причём её код будет зависеть от конкретных настроек почтового сервера. А вот реальная отправка письма с аутентификацией. Пароль будет запрошен в консоли:
# swaks --to zeroxzed@gmail.com --from vladimir@zeroxzed.ru --auth PLAIN --auth-user vladimir@zeroxzed.ru --server mail.zeroxzed.ru
С помощью похожего запроса можно удобно проверить поддерживаемые методы аутентификации. Например, CRAM-MD5:
# swaks --to zeroxzed@gmail.com --from vladimir@zeroxzed.ru --auth CRAM-MD5 --auth-user vladimir@zeroxzed.ru --server mail.zeroxzed.ru
=== Trying mail.zeroxzed.ru:25...
=== Connected to mail.zeroxzed.ru.
<- 220 mail.zeroxzed.ru ESMTP
-> EHLO debian11.homelab.local
<- 250-mail.zeroxzed.ru
<- 250-8BITMIME
<- 250-SIZE 31457280
<- 250-AUTH PLAIN LOGIN
<- 250-STARTTLS
<- 250 PIPELINING
*** Auth not attempted, requested type not available
-> QUIT
<- 221 Goodbye
Сервер ответил, что подобный механизм аутентификации не поддерживает.
Если не хочется каждый раз указывать данные аутентификации, их можно добавить в файл
.netrc
. Это тот же файл, что поддерживает и curl. Формат его такой:machine mail.server.ru login root@server.ru password password123
Чтобы программа приняла этот файл, у него должен быть доступ только для пользователя, от которого вы запускаете программу.
В качестве тела письма можно использовать текстовый файл. Это удобно, если нужно проверить работу антивируса или антиспама. К примеру, берём файл EICAR-Test-File, на который все антивирусы дают реакцию, как на вирус, и отправляем его содержимое письмом:
# wget http://eicar.eu/eicar.com.txt
# swaks --to zeroxzed@gmail.com --from vladimir@zeroxzed.ru --auth PLAIN --auth-user vladimir@zeroxzed.ru --server mail.zeroxzed.ru --attach - --suppress-data <eicar.com.txt
Gmail не принял письмо: "552 5.7.0 This message was blocked because its content presents a potential security issue."
Тело письма можно и сразу в консоли передать через ключ
--body 'foo'
, тему через --header 'Subject: foo'
. Можно и случайные заголовки добавлять примерно так: --header-X-Test "test email"
. В общем, инструмент простой, универсальный, интуитивно понятный. Автор поддерживает и регулярно обновляет. Можно использовать и в каких-то велосипедах на bash. Swaks умеет работать через различные прокси, использовать tls сертификаты с выбором шифров и некоторых настроек.
⇨ Исходники
#mailserver
Я привык вместе с почтовыми серверами настраивать веб интерфейс на базе RoundCube. Простой и удобный интерфейс, написанный на php. Основной его минус - он почти не развивался последние лет 10. Недавно его под своё крыло взяла Nextcloud GmbH и пообещала добавить разработчиков, чтобы оживить панельку и вдохнуть в неё новую жизнь. Времени прошло немного, так что каких-то изменений пока нет. Выкатили один релиз с исправлением известных ошибок.
Много раз видел рекомендации на SnappyMail, это форк RainLoop, который больше не развивается. Решил посмотреть на SnappyMail и подключил к одному из почтовых серверов. Напишу то, на что обратил внимание сам по сравнению с RoundCube:
🔹SnappyMail имеет очень простой и быстрый веб интерфейс. Я, честно говоря, прям кайфую, когда вижу лёгкие и быстрые интерфейсы. Сейчас это редкость. Не сказать, что RoundCube тяжёлый, но SnappyMail легче и отзывчивее.
🔹Если вам не нужна общая адресная книга, то для работы SnappyMail не нужна СУБД. Она все настройки хранит в файлах. Написана тоже на php, так что для установки достаточно просто исходники положить в директорию веб сервера. Все дальнейшие настройки через веб интерфейс. Не нужно руками править конфиги. В RoundCube придётся по конфигам полазить, чтобы настроить.
🔹Как и RoundCube, SnappyMail поддерживает работу фильтров sieve. Из коробки стандартная тема поддерживает мобильные устройства.
🔹В SnappyMail по умолчанию любой пользователь может настраивать несколько почтовых ящиков, подключенных к его аккаунту.
🔹Для SnappyMail, как и RoundCube, есть много дополнительных плагинов. Но в отличие от круглого куба, в Snappy вся установка и настройка выполняется через веб интерфейс администратора. Не надо руками качать плагины и править конфиги. Это очень удобно. Набор плагинов тоже понравился.
🔹У SnappyMail есть готовые фильтры для Fail2ban, которые пресекают перебор учёток через веб интерфейс.
В общем и целом, ничего особенного у SnappyMail я не увидел, но по совокупности небольших улучшений он выглядит более простым и удобным в установке и настройке. Плюс, мне внешний вид темы по умолчанию понравился больше в SnappyMail. Он более минималистичный и компактный.
Единственное, что не понравилось - не увидел в SnappyMail плагин, который позволяет пользователю самостоятельно поставить отбойник, когда он уходит в отпуск. В RoundCube я в обязательном порядке его ставлю, пользователи активно используют. Можно это реализовывать с помощью фильтров, но отдельный плагин только под это дело удобнее.
❗️Если кто-то будет прямо сейчас пробовать, имейте ввиду, что в последних двух релизах есть баг, связанный с начальной настройкой, который уже исправили, но ещё не выпустили новый релиз с исправлением. Ставьте версию 2.35.0. Там ошибок нет.
#mailserver
Много раз видел рекомендации на SnappyMail, это форк RainLoop, который больше не развивается. Решил посмотреть на SnappyMail и подключил к одному из почтовых серверов. Напишу то, на что обратил внимание сам по сравнению с RoundCube:
🔹SnappyMail имеет очень простой и быстрый веб интерфейс. Я, честно говоря, прям кайфую, когда вижу лёгкие и быстрые интерфейсы. Сейчас это редкость. Не сказать, что RoundCube тяжёлый, но SnappyMail легче и отзывчивее.
🔹Если вам не нужна общая адресная книга, то для работы SnappyMail не нужна СУБД. Она все настройки хранит в файлах. Написана тоже на php, так что для установки достаточно просто исходники положить в директорию веб сервера. Все дальнейшие настройки через веб интерфейс. Не нужно руками править конфиги. В RoundCube придётся по конфигам полазить, чтобы настроить.
🔹Как и RoundCube, SnappyMail поддерживает работу фильтров sieve. Из коробки стандартная тема поддерживает мобильные устройства.
🔹В SnappyMail по умолчанию любой пользователь может настраивать несколько почтовых ящиков, подключенных к его аккаунту.
🔹Для SnappyMail, как и RoundCube, есть много дополнительных плагинов. Но в отличие от круглого куба, в Snappy вся установка и настройка выполняется через веб интерфейс администратора. Не надо руками качать плагины и править конфиги. Это очень удобно. Набор плагинов тоже понравился.
🔹У SnappyMail есть готовые фильтры для Fail2ban, которые пресекают перебор учёток через веб интерфейс.
В общем и целом, ничего особенного у SnappyMail я не увидел, но по совокупности небольших улучшений он выглядит более простым и удобным в установке и настройке. Плюс, мне внешний вид темы по умолчанию понравился больше в SnappyMail. Он более минималистичный и компактный.
Единственное, что не понравилось - не увидел в SnappyMail плагин, который позволяет пользователю самостоятельно поставить отбойник, когда он уходит в отпуск. В RoundCube я в обязательном порядке его ставлю, пользователи активно используют. Можно это реализовывать с помощью фильтров, но отдельный плагин только под это дело удобнее.
❗️Если кто-то будет прямо сейчас пробовать, имейте ввиду, что в последних двух релизах есть баг, связанный с начальной настройкой, который уже исправили, но ещё не выпустили новый релиз с исправлением. Ставьте версию 2.35.0. Там ошибок нет.
#mailserver
Давно не было заметок на тему почтовых серверов. Год назад тема была очень живая, когда Яндекс объявил, что бесплатная почта для доменов перестаёт быть бесплатной. Судя по всему он на этом неплохо заработал. Часть знакомых мне людей в итоге оплатила услугу и продолжает с тех пор пользоваться уже за деньги.
Сегодня хотел не об этом. Попался на глаза очередной готовый почтовый сервер на базе известных open source компонентов, упакованных в Docker - docker-mailserver. На первый взгляд всё это очень сильно похоже на Mail-in-a-Box или Mailcow, которые уже давно известны и на слуху. У них даже количество звёзд на гитхабе примерно одинаковое.
Основные компоненты и особенности этой сборки:
◽ Postfix + Dovecot + Amavis
◽ Rspamd и SpamAssassin
◽ Clamav + Fail2ban
◽ OpenDKIM и OpenDMARC
◽ Postscreen + Postgrey
🔥SASLauthd с поддержкой LDAP
◽ Не используются базы данных, только конфигурационные файлы.
Стек очень стандартный и лично у меня к нему претензий никаких. Если собираю почтовик сам, то использую примерно эти же компоненты. Так что если вы любитель Docker и вам непременно нужен почтовый сервер в контейнерах, то это как минимум стандартный вариант без экзотики. Можно брать и пользоваться. Даже если что-то заглючит, можно залезть и поправить, потому что по каждому из этих компонентов есть масса инструкций и руководств.
У продукта неплохая документация: описание структуры, какие DNS записи нужны, как настроить окружение, пример рабочего docker-compose для запуска и т.д. В общем, я почитал, впечатление хорошее. Подробная документация обычно признак зрелого продукта. В этом плане он выглядит более привлекательно, чем Mail-in-a-Box.
С другой стороны, docker-mailserver ориентирован на максимальную простоту и снижение требований по ресурсам. По сути это минимальное ядро для реализации современного почтового сервера. Для запуска достаточно 1 vCore и 512MB RAM. Рекомендуется: 1 vCore 2GB RAM. У этой сборки нет ни интерфейса для администрирования, ни веб интерфейса для почты. Пользователи создаются консольными командами или берутся из LDAP.
Подводя итог скажу, что docker-mailserver в первую очередь для тех, кто уже умеет работать с почтовыми серверами, знает из чего они состоят и как с ними обращаться. Он пригодится, к примеру, как почтовый шлюз для приёма и отправки почты из расположенных рядом контейнеров. Благодаря минимальным системным требованиям и простоте установки, он будет уместен в этой роли.
Это не продукт по типу запустил установщик, зашёл в веб интерфейс и начал пользоваться. Если вам нужен подобный веб сервер, то можете выбрать что-то из моей подборки:
⇨ Подборка бесплатных почтовых серверов
Надо бы её обновить. Уже есть чем дополнить. Того же Mail-in-a-Box там нет, или Modoboa. Думаю, организую в ближайшее время.
Отдельное внимание обращаю на бесплатную версию Tegu. Я давно себе поднял для технических нужд и пользуюсь. Очень простой в настройке почтовый сервер. Состоит из одного бинарника на Go и конфига. Уже имеет встроенный веб интерфейс для управления. То есть просто рисуете конфиг, запускаете бинарник и у вас готовый почтовый сервер, где реализованы все основные возможности стандартного почтового сервера. Для тех, кто не хочет заморачиваться по этой теме, а нужен просто работающий сервер - идеальный вариант. У меня есть заметка, где я Tegu упаковал в deb пакет сразу вместе со службами для systemd.
Если кого-то интересует, что предпочитаю я сам, то отвечу, что это самостоятельная сборка необходимых компонентов. Как это примерно делается, описано в моей статье. Я умею это делать и мне так привычнее, удобнее. Вам не обязательно поступать так же. Можно взять готовое решение, просто его кто-то собрал за вас.
#mailserver
Сегодня хотел не об этом. Попался на глаза очередной готовый почтовый сервер на базе известных open source компонентов, упакованных в Docker - docker-mailserver. На первый взгляд всё это очень сильно похоже на Mail-in-a-Box или Mailcow, которые уже давно известны и на слуху. У них даже количество звёзд на гитхабе примерно одинаковое.
Основные компоненты и особенности этой сборки:
◽ Postfix + Dovecot + Amavis
◽ Rspamd и SpamAssassin
◽ Clamav + Fail2ban
◽ OpenDKIM и OpenDMARC
◽ Postscreen + Postgrey
🔥SASLauthd с поддержкой LDAP
◽ Не используются базы данных, только конфигурационные файлы.
Стек очень стандартный и лично у меня к нему претензий никаких. Если собираю почтовик сам, то использую примерно эти же компоненты. Так что если вы любитель Docker и вам непременно нужен почтовый сервер в контейнерах, то это как минимум стандартный вариант без экзотики. Можно брать и пользоваться. Даже если что-то заглючит, можно залезть и поправить, потому что по каждому из этих компонентов есть масса инструкций и руководств.
У продукта неплохая документация: описание структуры, какие DNS записи нужны, как настроить окружение, пример рабочего docker-compose для запуска и т.д. В общем, я почитал, впечатление хорошее. Подробная документация обычно признак зрелого продукта. В этом плане он выглядит более привлекательно, чем Mail-in-a-Box.
С другой стороны, docker-mailserver ориентирован на максимальную простоту и снижение требований по ресурсам. По сути это минимальное ядро для реализации современного почтового сервера. Для запуска достаточно 1 vCore и 512MB RAM. Рекомендуется: 1 vCore 2GB RAM. У этой сборки нет ни интерфейса для администрирования, ни веб интерфейса для почты. Пользователи создаются консольными командами или берутся из LDAP.
Подводя итог скажу, что docker-mailserver в первую очередь для тех, кто уже умеет работать с почтовыми серверами, знает из чего они состоят и как с ними обращаться. Он пригодится, к примеру, как почтовый шлюз для приёма и отправки почты из расположенных рядом контейнеров. Благодаря минимальным системным требованиям и простоте установки, он будет уместен в этой роли.
Это не продукт по типу запустил установщик, зашёл в веб интерфейс и начал пользоваться. Если вам нужен подобный веб сервер, то можете выбрать что-то из моей подборки:
⇨ Подборка бесплатных почтовых серверов
Надо бы её обновить. Уже есть чем дополнить. Того же Mail-in-a-Box там нет, или Modoboa. Думаю, организую в ближайшее время.
Отдельное внимание обращаю на бесплатную версию Tegu. Я давно себе поднял для технических нужд и пользуюсь. Очень простой в настройке почтовый сервер. Состоит из одного бинарника на Go и конфига. Уже имеет встроенный веб интерфейс для управления. То есть просто рисуете конфиг, запускаете бинарник и у вас готовый почтовый сервер, где реализованы все основные возможности стандартного почтового сервера. Для тех, кто не хочет заморачиваться по этой теме, а нужен просто работающий сервер - идеальный вариант. У меня есть заметка, где я Tegu упаковал в deb пакет сразу вместе со службами для systemd.
Если кого-то интересует, что предпочитаю я сам, то отвечу, что это самостоятельная сборка необходимых компонентов. Как это примерно делается, описано в моей статье. Я умею это делать и мне так привычнее, удобнее. Вам не обязательно поступать так же. Можно взять готовое решение, просто его кто-то собрал за вас.
#mailserver
GitHub
GitHub - docker-mailserver/docker-mailserver: Production-ready fullstack but simple mail server (SMTP, IMAP, LDAP, Antispam, Antivirus…
Production-ready fullstack but simple mail server (SMTP, IMAP, LDAP, Antispam, Antivirus, etc.) running inside a container. - docker-mailserver/docker-mailserver
В продолжение темы с уведомлениями в Apprise. Есть продукт на его основе, который умеет конвертировать email сообщения в уведомления apprise. Называется Mailrise. По своей сути это SMTP gateway для apprise.
Он поднимается как обычный SMTP сервер. Принимает сообщения и переадресует их в зависимости от настроек в необходимые каналы уведомлений. И речь тут может идти не только об уведомлениях в мессенджеры, смс, пуши и т.д. Например, mailrise может отправить email в формате JSON через HTTP POST запрос. Может в Syslog сделать запись с заголовком и текстом письма, может переслать на другой SMTP сервер. Продукт универсальный.
Насколько я понимаю, основное применение - отправка уведомлений с тех устройств и систем, которые кроме email ничего не умеют отправлять. Какие-нибудь свитчи, принтеры, может ещё что-то.
Покажу на примере, как это работает. Для начала установим Mailrise. Сделать это можно либо через pip, либо запустить в Docker. Я беру второй вариант, поэтому сразу подготовим конфигурационный файл, который мы передадим в контейнер.
Я буду принимать почту и отправлять уведомление в Telegram и Syslog. Для этого готовлю такой конфиг
Запускаю контейнер с указанным конфигом:
Почтовый сервер готов принимать почту на порту 8025. Отправляю тестовое сообщение. Проще всего это сделать через PowerShell:
В данном случае адреса telegram@mailrise.xyz и rsyslog@mailrise.xyz вымышленные. Имеет значение только название перед @. Оно должно соответствовать названиям конфигов в
В Linux через консоль с указанием релея отправки проще всего использовать ssmtp. Для этого её надо установить и нарисовать простой конфиг:
В конфиг
Отправляем почту через mailrise:
Оповещение прилетит в Telegram и Rsyslog. В последнем будет примерно такая запись в логе:
Соответственно, можно указать отдельный facility и настроить в rsyslog.conf приём этих уведомлений в отдельный файл.
Подобным образом можно настраивать любой тип уведомлений, которые поддерживает Apprise. По мне так очень простое и функциональное решение. Понятно, что оно не везде нужно. Лишнюю прослойку без нужды не стоит использовать. Но в целом сделано неплохо.
Если нужна аутентификация, то добавить её можно следующими настройками в конфиге:
⇨ Исходники / Видеообзор
#mailserver
Он поднимается как обычный SMTP сервер. Принимает сообщения и переадресует их в зависимости от настроек в необходимые каналы уведомлений. И речь тут может идти не только об уведомлениях в мессенджеры, смс, пуши и т.д. Например, mailrise может отправить email в формате JSON через HTTP POST запрос. Может в Syslog сделать запись с заголовком и текстом письма, может переслать на другой SMTP сервер. Продукт универсальный.
Насколько я понимаю, основное применение - отправка уведомлений с тех устройств и систем, которые кроме email ничего не умеют отправлять. Какие-нибудь свитчи, принтеры, может ещё что-то.
Покажу на примере, как это работает. Для начала установим Mailrise. Сделать это можно либо через pip, либо запустить в Docker. Я беру второй вариант, поэтому сразу подготовим конфигурационный файл, который мы передадим в контейнер.
Я буду принимать почту и отправлять уведомление в Telegram и Syslog. Для этого готовлю такой конфиг
mailrise.conf
в формате yaml :configs:
telegram:
urls:
- tgram://1393668911:AAHtETAKqxUH8ZpyC28R-wxKfvH8WR6-vdNw/211805263
rsyslog:
urls:
- rsyslog://172.30.245.222
Запускаю контейнер с указанным конфигом:
# docker run -d -p 8025:8025 --restart always \
-v ~/mailrise/mailrise.conf:/etc/mailrise.conf \
--name mailrise \
yoryan/mailrise
Почтовый сервер готов принимать почту на порту 8025. Отправляю тестовое сообщение. Проще всего это сделать через PowerShell:
> send-mailmessage -from "admin@local" -to "Telegram <telegram@mailrise.xyz>","Rsyslog <rsyslog@mailrise.xyz>" -subject "Message from Mailrise" -body "Test Message" -smtpserver 172.30.245.222 -port 8025
В данном случае адреса telegram@mailrise.xyz и rsyslog@mailrise.xyz вымышленные. Имеет значение только название перед @. Оно должно соответствовать названиям конфигов в
mailrise.conf
. То есть если отправить почту только на telegram@mailrise.xyz, то оповещение придёт только в Telegram. То есть вот так:> send-mailmessage -from "admin@local" -to "Telegram <telegram@mailrise.xyz>" -subject "Message from Mailrise" -body "Test Message" -smtpserver 172.30.245.222 -port 8025
В Linux через консоль с указанием релея отправки проще всего использовать ssmtp. Для этого её надо установить и нарисовать простой конфиг:
# apt install ssmtp
В конфиг
/etc/ssmtp/ssmtp.conf
пишем:root=admin@local
mailhub=172.30.245.222:8025
hostname=debian12.homelab.local
Отправляем почту через mailrise:
# echo "Test Message" | mail -s "Message from Mailrise" telegram@mailrise.xyz rsyslog@mailrise.xyz
Оповещение прилетит в Telegram и Rsyslog. В последнем будет примерно такая запись в логе:
2024-04-25T14:55:20.717270+03:00 172.17.0.2 - 1 - Message from Mailrise (admin@local): Test Message
Соответственно, можно указать отдельный facility и настроить в rsyslog.conf приём этих уведомлений в отдельный файл.
Подобным образом можно настраивать любой тип уведомлений, которые поддерживает Apprise. По мне так очень простое и функциональное решение. Понятно, что оно не везде нужно. Лишнюю прослойку без нужды не стоит использовать. Но в целом сделано неплохо.
Если нужна аутентификация, то добавить её можно следующими настройками в конфиге:
smtp:
auth:
basic:
user01: password01
⇨ Исходники / Видеообзор
#mailserver
Решил сделать шпаргалку для копипасты по отправке email с аутентификацией из консоли через внешний smtp сервер. Нередко приходится этим заниматься как напрямую в консоли, так и в каких-то скриптах.
🔹В Linux самый простой вариант через Curl. Но там есть один нюанс, который создаёт неудобство, если вы хотите быстро отправить письмо через консоль. Заголовки и тело письма задаются через отдельный текстовый файл. Чтобы всё это уместить в одну команду, приходится использовать примерно такую конструкцию:
🔹Если вы будете использовать подобную отправку регулярно, либо где-то в скрипте, то скорее всего захочется вести лог передачи, отслеживать статус отправки и т.д. В таком случае проще всего настроить локально postfix или ssmtp. Для них нужно будет подготовить простой конфиг. Пример для postfix:
Добавляем в конфиг
Создаём файл
Создаем db файл.
Теперь можно перезапустить postfix и проверить работу.
Лог отправки, в том числе ответ принимающего сервера, будет в системном логе
🔹Ниже пример отправки почты через ssmtp.
В конфиг
Отправляем почту:
Утилита mail отправит почту через ssmtp. Я чаще отдаю предпочтение postfix, потому что у него лог кажется более информативным и привычным.
🔹В Windows можно использовать для этих же целей PowerShell. Вот как выглядит там отправка:
У вас откроется традиционное окно Windows для аутентификации. Туда нужно будет ввести логин и пароль от ящика. Если открыть cmd, перейти в powershell и выполнить указанную команду, то окно с аутентификацией почему-то не выскакивает. А если открыть сразу консоль PowerShell, то всё в порядке. Похоже на какой-то баг. Ошибка быстро гуглится, как и решение. Если не хочется вводить данные для аутентификации вручную, то их можно можно сохранить в переменной, в случае, если используется скрипт.
#mailserver
🔹В Linux самый простой вариант через Curl. Но там есть один нюанс, который создаёт неудобство, если вы хотите быстро отправить письмо через консоль. Заголовки и тело письма задаются через отдельный текстовый файл. Чтобы всё это уместить в одну команду, приходится использовать примерно такую конструкцию:
# echo -e "Subject: Test Subject \nTest body message." > /tmp/body.txt && curl -v --url "smtp://mail.server.ru:25" --mail-from root@server.ru --mail-rcpt user@example.com --user 'root@server.ru:password123' --upload-file "/tmp/body.txt"
🔹Если вы будете использовать подобную отправку регулярно, либо где-то в скрипте, то скорее всего захочется вести лог передачи, отслеживать статус отправки и т.д. В таком случае проще всего настроить локально postfix или ssmtp. Для них нужно будет подготовить простой конфиг. Пример для postfix:
# apt install postfix mailutils
Добавляем в конфиг
/etc/postfix/main.cf
relayhost = mail.server.ru:25
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_security_level = may
Создаём файл
/etc/postfix/sasl_passwd
с данными для аутентификации в таком формате:mail.server.ru:25 root@server.ru:password123
Создаем db файл.
# postmap /etc/postfix/sasl_passwd
Теперь можно перезапустить postfix и проверить работу.
# systemctl restart postfix
# echo "Test body message." | mail -s "Test Subject" user@example.com
Лог отправки, в том числе ответ принимающего сервера, будет в системном логе
/var/log/syslog
или /var/log/mail.log
. Удобно для отладки или мониторинга.🔹Ниже пример отправки почты через ssmtp.
# apt install ssmtp
В конфиг
/etc/ssmtp/ssmtp.conf
пишем:mailhub=mail.server.ru:25
hostname=mail.server.ru
root=root@server.ru
AuthUser=root@server.ru
AuthPass=password123
UseSTARTTLS=YES
UseTLS=YES
Отправляем почту:
# echo "Test body message." | mail -s "Test Subject" user@example.com
Утилита mail отправит почту через ssmtp. Я чаще отдаю предпочтение postfix, потому что у него лог кажется более информативным и привычным.
🔹В Windows можно использовать для этих же целей PowerShell. Вот как выглядит там отправка:
> Send-MailMessage -From root@server.ru -To user@example.com -Subject "Test Subject" -Body "Test body message." -SmtpServer mail.server.ru -Port 25 -Credential (Get-Credential)
У вас откроется традиционное окно Windows для аутентификации. Туда нужно будет ввести логин и пароль от ящика. Если открыть cmd, перейти в powershell и выполнить указанную команду, то окно с аутентификацией почему-то не выскакивает. А если открыть сразу консоль PowerShell, то всё в порядке. Похоже на какой-то баг. Ошибка быстро гуглится, как и решение. Если не хочется вводить данные для аутентификации вручную, то их можно можно сохранить в переменной, в случае, если используется скрипт.
#mailserver
Dovecot - наиболее популярный imap сервер, который используется в почтовых серверах на базе open source ПО. Остальные значительно уступают ему в популярности, и я даже не уверен, что их кто-то ещё использует. К примеру, лет 15 назад я настраивал Courier-IMAP. Со временем перешёл на Dovecot, потому что он более популярен.
Так вот, если вы эксплуатируете этот imap сервер, то можно использовать его встроенные возможности для очистки почтовых ящиков или папок в них. В первую очередь это касается папок Trash и Junk (Spam). Для этого можно использовать простую команду:
Она удалит все письма в ящике user@example.com в папке Trash старше 4-х недель. Соответственно, так можно очищать любой ящик.
Условие может быть составным. Например, очистим все прочитанные сообщения в папке Spam старше 24 часов:
Можно делать глобальные чистки сразу для всех ящиков (❗️будьте аккуратны с подобными командами). Например, удалим всю почту старше трёх лет:
Синтаксис запросов doveadm описан в документации dovecot.
Благодаря тому, что Dovecot, как я уже сказал, используется почти во всех бесплатных сборках почтовых серверов, вы можете использовать эти возможности и там. Например, в iredmail, mailcow и т.д.
Когда я не знал про эти возможности Dovecot, использовал свои костыли на основе find. Так как письма в формате maildir - это по сути обычные текстовые файлы, вы можете делать с ними на уровне файлов всё, что угодно. Примеры своих скриптов я показал в статье Очистка и обслуживание почтовой базы postfix. Посмотрите, может найдёте там для себя что-то полезное. Я показываю в том числе, как выполнять очистку писем на основе их содержимого или заголовка (поля subject). К примеру, удалять все письма старше 30 дней с определённой темой. Статья писалась 7! лет назад. Сейчас я бы делал скорее всего всё это по-другому, так что не спешите критиковать. Просто примите к сведению то, что там написано, если для вас эта тема актуальна.
#mailserver #dovecot
Так вот, если вы эксплуатируете этот imap сервер, то можно использовать его встроенные возможности для очистки почтовых ящиков или папок в них. В первую очередь это касается папок Trash и Junk (Spam). Для этого можно использовать простую команду:
# doveadm expunge -u user@example.com mailbox Trash savedbefore 4w
Она удалит все письма в ящике user@example.com в папке Trash старше 4-х недель. Соответственно, так можно очищать любой ящик.
Условие может быть составным. Например, очистим все прочитанные сообщения в папке Spam старше 24 часов:
# doveadm expunge -u user@example.com mailbox 'Junk' SEEN not SINCE 24h
Можно делать глобальные чистки сразу для всех ящиков (❗️будьте аккуратны с подобными командами). Например, удалим всю почту старше трёх лет:
# doveadm expunge -A mailbox % before 156w
Синтаксис запросов doveadm описан в документации dovecot.
Благодаря тому, что Dovecot, как я уже сказал, используется почти во всех бесплатных сборках почтовых серверов, вы можете использовать эти возможности и там. Например, в iredmail, mailcow и т.д.
Когда я не знал про эти возможности Dovecot, использовал свои костыли на основе find. Так как письма в формате maildir - это по сути обычные текстовые файлы, вы можете делать с ними на уровне файлов всё, что угодно. Примеры своих скриптов я показал в статье Очистка и обслуживание почтовой базы postfix. Посмотрите, может найдёте там для себя что-то полезное. Я показываю в том числе, как выполнять очистку писем на основе их содержимого или заголовка (поля subject). К примеру, удалять все письма старше 30 дней с определённой темой. Статья писалась 7! лет назад. Сейчас я бы делал скорее всего всё это по-другому, так что не спешите критиковать. Просто примите к сведению то, что там написано, если для вас эта тема актуальна.
#mailserver #dovecot
Server Admin
Очистка и обслуживание почтовой базы postfix
Практические примеры по фильтрации почты в почтовых ящиках postfix, автоматической очистке корзин и папок со спамом в почтовых ящиках.
Актуализировал свою статью про настройку почтового сервера на базе Debian 12:
⇨ Настройка почтового сервера на Debian: postfix + dovecot + web интерфейс
Если вам нужен стандартный почтовый сервер с базовыми возможностями, то с помощью этой статьи вы практически в режиме copy-paste сможете его настроить.
❓Может возникнуть резонный вопрос. Стоит ли всем этим заниматься самостоятельно и настраивать с нуля? Есть много вариантов готовых почтовых серверов, которые настраиваются в несколько действий. Моё мнение такое. Если вам нужен сервер для небольших вспомогательных задач, то лучше взять что-то готовое и не заморачиваться. Это такие знания, которые некоторым вообще не пригодятся в их карьере. Сейчас услуги почтовых серверов в основном приобретаются как сервис. Если в вашем случае такой сервис можно купить, то купите. Так будет удобнее всем, и пользователям, и тем, кто это будет поддерживать.
Самостоятельно настраивать почтовый сервер имеет смысл, если вы хотите изучить его работу, и вам это пригодится в будущем. Если вам нужно будет администрировать нагруженный почтовый сервер, с которым будет работать множество пользователей, то вникать в нюансы его работы нужно будет в обязательном порядке. Даже если вы планируете купить коммерческое решение, потренируйтесь в настройке самостоятельно. Postfix в этом плане подходящий вариант, так как к нему шаг за шагом можно навешивать новую функциональность и смотреть, как всё это вместе работает.
Второй вариант - вам нужно что-то необычное. Например, изменять письма перед отправкой. Отправлять почту с почтового сервера, используя несколько других в качестве релея, управляя условиями выбора того или иного внешнего сервера. Вы хотите что-то делать с письмами на основе их содержимого, заголовков и других признаков. Например, автоматически удалять какие-то письма по истечении определённого времени. Вам нужен почтовый сервер для двух доменных зон - одна для внешней почты, другая только для внутренней переписки, без возможности отправки какими-то пользователями почты во вне. Вы хотите кому-то запретить отправлять больше 30-ти писем в час. В общем, тут вы ограничены только своей фантазией. На базе Postfix и обвязки можно реализовать разнообразные функциональности.
Полезные ссылки по этой теме:
◽️Подборка онлайн сервисов для диагностики почтовых серверов
◽️Imapsync для переноса почты между серверами
◽️Ограничение на отправку за определённый период времени
◽️Защита почтового сервера с помощью Fail2Ban
◽️Перенос почтового сервера Postfix
◽️Очистка почтовых ящиков средствами Dovecot
◽️Веб интерфейс SnappyMail
◽️Инструмент для диагностики почтовых серверов - Swaks
◽️Модуль статистики для мониторинга Dovecot
◽️Мониторинг postfix в zabbix
◽️Настройка маршрута отправки в зависимости от домена
◽️Как изменить тему письма и адрес отправителя через postfix
◽️Выбор сервера для отправки в зависимости от получателя
◽️Названия imap директорий ф кодировке UTF-7
◽️Бэкап почтовых ящиков с помощью imap-backup
◽️Greylisting для борьбы со спамом
Если ищите себе вариант готового бесплатного сервера, то у меня почти все популярные варианты были на канале:
▪️Mailcow
▪️Mail-in-a-Box
▪️hMailServer
▪️Tegu
▪️Iredmail
▪️Carbonio CE
▪️Poste.io
▪️docker-mailserver
▪️Modoboa
Краткое описание некоторых из них было в подборке.
Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#mailserver #подборка
⇨ Настройка почтового сервера на Debian: postfix + dovecot + web интерфейс
Если вам нужен стандартный почтовый сервер с базовыми возможностями, то с помощью этой статьи вы практически в режиме copy-paste сможете его настроить.
❓Может возникнуть резонный вопрос. Стоит ли всем этим заниматься самостоятельно и настраивать с нуля? Есть много вариантов готовых почтовых серверов, которые настраиваются в несколько действий. Моё мнение такое. Если вам нужен сервер для небольших вспомогательных задач, то лучше взять что-то готовое и не заморачиваться. Это такие знания, которые некоторым вообще не пригодятся в их карьере. Сейчас услуги почтовых серверов в основном приобретаются как сервис. Если в вашем случае такой сервис можно купить, то купите. Так будет удобнее всем, и пользователям, и тем, кто это будет поддерживать.
Самостоятельно настраивать почтовый сервер имеет смысл, если вы хотите изучить его работу, и вам это пригодится в будущем. Если вам нужно будет администрировать нагруженный почтовый сервер, с которым будет работать множество пользователей, то вникать в нюансы его работы нужно будет в обязательном порядке. Даже если вы планируете купить коммерческое решение, потренируйтесь в настройке самостоятельно. Postfix в этом плане подходящий вариант, так как к нему шаг за шагом можно навешивать новую функциональность и смотреть, как всё это вместе работает.
Второй вариант - вам нужно что-то необычное. Например, изменять письма перед отправкой. Отправлять почту с почтового сервера, используя несколько других в качестве релея, управляя условиями выбора того или иного внешнего сервера. Вы хотите что-то делать с письмами на основе их содержимого, заголовков и других признаков. Например, автоматически удалять какие-то письма по истечении определённого времени. Вам нужен почтовый сервер для двух доменных зон - одна для внешней почты, другая только для внутренней переписки, без возможности отправки какими-то пользователями почты во вне. Вы хотите кому-то запретить отправлять больше 30-ти писем в час. В общем, тут вы ограничены только своей фантазией. На базе Postfix и обвязки можно реализовать разнообразные функциональности.
Полезные ссылки по этой теме:
◽️Подборка онлайн сервисов для диагностики почтовых серверов
◽️Imapsync для переноса почты между серверами
◽️Ограничение на отправку за определённый период времени
◽️Защита почтового сервера с помощью Fail2Ban
◽️Перенос почтового сервера Postfix
◽️Очистка почтовых ящиков средствами Dovecot
◽️Веб интерфейс SnappyMail
◽️Инструмент для диагностики почтовых серверов - Swaks
◽️Модуль статистики для мониторинга Dovecot
◽️Мониторинг postfix в zabbix
◽️Настройка маршрута отправки в зависимости от домена
◽️Как изменить тему письма и адрес отправителя через postfix
◽️Выбор сервера для отправки в зависимости от получателя
◽️Названия imap директорий ф кодировке UTF-7
◽️Бэкап почтовых ящиков с помощью imap-backup
◽️Greylisting для борьбы со спамом
Если ищите себе вариант готового бесплатного сервера, то у меня почти все популярные варианты были на канале:
▪️Mailcow
▪️Mail-in-a-Box
▪️hMailServer
▪️Tegu
▪️Iredmail
▪️Carbonio CE
▪️Poste.io
▪️docker-mailserver
▪️Modoboa
Краткое описание некоторых из них было в подборке.
Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#mailserver #подборка
Server Admin
Настройка почтового сервера на Debian: postfix + dovecot + web...
Подробная пошаговая установка и настройка почтового сервера на Debian (postfix + dovecot): от подготовки DNS записей до запуска служб.