Конфигурация сервера Postfix для отправки электронной почты (SMTP) на Ubuntu 22.04/20.04/18.04

В данной статье я расскажу, как настроить Postfix в качестве SMTP-сервера для отправки электронной почты на Ubuntu 22.04, 20.04 и 18.04. Сначала мы рассмотрим настройку для одного домена, а затем вы сможете использовать эти инструкции для конфигурации нескольких доменов, если это потребуется.

Содержание статьи

Использование

Если у вас имеется веб-сайт или веб-приложение, которое отправляет пользователям транзакционные письма, такие как уведомления для сброса пароля, скорее всего, ответы на эти письма не требуются. Если же пользователи все-таки захотят ответить, их сообщения будут направлены на ваш выделенный почтовый сервер. В данной ситуации вы можете настроить SMTP-сервер исключительно для отправки писем с вашего веб-сервера, используя Postfix — известное программное обеспечение для SMTP-серверов.

Предварительные требования

Чтобы отправлять письма с вашего сервера, необходимо, чтобы порт 25 (исходящий) был открыт. Многие провайдеры интернет-услуг и хостинговые компании, включая DigitalOcean, закрывают этот порт для борьбы со спамом. Рекомендую использовать VPS от Kamatera, который предоставляет:

  • Бесплатный пробный период на 30 дней.
  • Стоимость начинается от 4 долларов в месяц за 1 ГБ оперативной памяти.
  • VPS с высокой производительностью на платформе KVM
  • Девять дата-центров расположены по всему миру, в том числе в США, Канаде, Великобритании, Германии, Нидерландах, Гонконге и Израиле.

Перейдите по ссылке ниже, чтобы ознакомиться с инструкцией по созданию вашего сервера Linux VPS на платформе Kamatera.

  • Как настроить сервер Linux VPS на платформе Kamatera.

Конфигурация сервера SMTP Postfix для отправки писем с несколькими доменами не представляет особой сложности. Сначала мы проведем настройку для одного домена, а затем расширим ее на несколько.

Установите Postfix на систему Ubuntu.

Используйте указанные ниже команды для установки Postfix из официального репозитория Ubuntu.

sudo apt-get update sudo apt-get install postfix - y

Вам предстоит выбрать вариант конфигурации почтового сервера. Используйте клавишу Tab, а затем нажмите Enter.

Почтовый сервер SMTP, работающий в режиме отправки.

На следующем экране нажмите клавишу Enter, чтобы выбрать стандартный вариант: веб-сайт.

Отправка почты через Postfix на Ubuntu.

Введите ваше доменное имя для почтового адреса, то есть часть после знака @.

отправка писем с помощью Postfix для нескольких доменов

Конфигурация Postfix

Конфигурация имени хоста для Postfix

По умолчанию SMTP-сервер Postfix использует имя хоста вашей операционной системы для идентификации при взаимодействии с другими SMTP-серверами. Однако имя хоста может измениться, что может привести к тому, что некоторые SMTP-серверы откажутся принимать вашу почту, если имя хоста будет недействительным. Поэтому рекомендуется явно указать имя хоста в конфигурационном файле Postfix, используя следующую команду.

sudo postconf - e "myhostname = sendonly. yourdomain.com"

Имя хоста должно содержать DNS-запись A, которая указывает на IP-адрес вашего сервера.

Конфигурация переменной $mydomain

Параметр $mydomain определяет локальное имя интернет-домена. Значение по умолчанию представляет собой $myhostname за вычетом первого компонента. Чтобы узнать текущее значение $mydomain, используйте:

postconf mydomain

Это должно быть ваше главное доменное имя, например.

linux16.ru

Если ваше основное доменное имя не отображается, установите параметр $mydomain следующим образом:

sudo postconf - e "mydomain = yourdomain.com"

Настройка значения переменной $myorigin

Параметр $myorigin задает доменное имя по умолчанию, которое прикрепляется к адресам отправителей и получателей в случае, если они не содержат части @domain. По умолчанию это значение берется из файла /etc/mailname, что можно проверить следующим образом:

postconf myorigin

myorigin = /etc/mailname

После этого вы можете получить значение из файла /etc/mailname.

cat /etc/mailname

Его значение должно представлять собой yourdomain.com без добавления поддоменов.

echo "yourdomain.com" | sudo tee /etc/mailname

Перезапуск Postfix

В конце концов, необходимо перезапустить Postfix, чтобы изменения начали действовать.

sudo systemctl restart postfix

Создание PTR-записи

Необходимо создать PTR запись, или запись указателя, которая связывает IP-адрес с полным доменным именем (FQDN). Это обратная запись по сравнению с записью A. Если у вашего сервера нет PTR записи, многие SMTP серверы могут отклонить вашу почту.

Поскольку ваш хостинг-провайдер или интернет-провайдер отвечает за предоставление IP-адреса, а не доменный регистратор, вам нужно настроить PTR-запись для вашего IP-адреса через панель управления вашего хостинга или связаться с вашим интернет-провайдером. Например, если вы используете VPS от Kamatera, для установки PTR-записи необходимо открыть тикет в службу поддержки. Вы можете назначить PTR-запись на любое имя хоста, но для достижения наилучших результатов рекомендуется использовать имя хоста Postfix, указанное на втором этапе.

Чтобы удостовериться, что ваша PTR-запись настроена корректно, выполните следующую команду. Не забудьте заменить 12.34.56.78 на ваш действительный IP-адрес.

host 12.34.56.78

Учтите, что если ваш сервер работает с IPv6 адресом, целесообразно добавить запись AAAA для имени хоста Postfix и настроить PTR запись для этого IPv6 адреса.

Инсталляция и конфигурация OpenDKIM

DKIM расшифровывается как DomainKeys Identified mail.Вы можете установить OpenDKIM на своем сервере для добавления цифровых подписей к электронным письмам, отправляемым с вашего домена, используя ваш закрытый ключ. SMTP-серверы, принимающие сообщения, проверяют подпись с помощью соответствующего открытого ключа, который вы публикуете в DNS. Внедрение DKIM-подписей является необходимым условием, если вы хотите, чтобы ваши письма доходили до почтового ящика адресата.

Читайте также:  Как настроить DNS (Bind) сервер на CentOS/RHEL 7/6/5

В первую очередь, установите OpenDKIM из официального репозитория Ubuntu.

sudo apt-get install opendkim opendkim-tools

После этого включите пользователя postfix в состав группы opendkim.

sudo adduser postfix opendkim

Измените главный конфигурационный файл OpenDKIM.

sudo nano /etc/opendkim.conf

Пожалуйста, отыщите указанные строки.

#Canonicalization simple #Mode sv #SubDomains no

Удалите комментарии и замените simple на relaxed/simple. Измените режим с sv на s, так как отсутствуют входящие сообщения для проверки подписи.

Canonicalization relaxed/simple Mode s SubDomains no

Вставьте указанные строки в нижнюю часть данного файла. (На Ubuntu 18.04 UserID уже настроен на opendkim)

#Пользователь OpenDKIM # Не забудьте добавить пользователя postfix в группу opendkim UserID opendkim # Отображение доменов в адресах From на ключи, используемые для подписи сообщений KeyTable refile:/etc/opendkim/key. table SigningTable refile:/etc/opendkim/signing. table # Набор внутренних хостов, почта которых должна подписываться InternalHosts /etc/opendkim/trusted. hosts

Сохраните изменения и закройте документ.

Формирование файла с подписями, ключами и списком доверенных хостов.

Организуйте папки для OpenDKIM.

sudo mkdir /etc/opendkim sudo mkdir /etc/opendkim/keys

Смените владельца каталога с root на opendkim и убедитесь, что доступ к нему имеет только пользователь opendkim, который может читать и записывать данные.

sudo chown - R opendkim:opendkim /etc/opendkim sudo chmod go-rw /etc/opendkim/keys

Составьте таблицу с подписями.

sudo nano /etc/opendkim/signing. table

Вставьте в файл следующие две строки. Это подразумевает, что если в заголовке From: письма присутствует example.com, будет применен селектор sendonly DKIM. Вы можете заменить sendonly на желаемое имя селектора DKIM, которое должно быть уникальным в вашей DNS. Вторая строка указывает, что поддомены также будут подписываться с использованием закрытого ключа.

*@example.com sendonly._domainkey.example.com *@*.example.com sendonly._domainkey.example.com

Сохраните файл и закройте его. После этого сформируйте таблицу ключей.

sudo nano /etc/opendkim/key. table

Вставьте следующую строку. Это указывает на то, что для селектора sendonly DKIM будет применяться закрытый ключ, хранящийся в /etc/opendkim/keys/example.com/sendonly. private, для подписи сообщений.

sendonly._domainkey.example.com example.com:sendonly:/etc/opendkim/keys/example.com/sendonly. private

Сохраните файл и закройте его. Затем создайте файл для доверенных хостов.

sudo nano /etc/opendkim/trusted. hosts

Включите в новый файл следующие строки.

127.0.0.1 localhost .example.com

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

Генерация пары ключей: закрытого и открытого.

Необходимо создать закрытый ключ для подписки исходящих писем и открытый ключ для верификации DKIM-подписи на серверах SMTP, принимающих эти письма. Открытый ключ будет размещен в DNS.

Сформируйте отдельную директорию для вашего домена.

sudo mkdir /etc/opendkim/keys/example.com

Создайте ключи с помощью инструмента opendkim-genkey.

sudo opendkim-genkey - b 2048 - d example.com-D /etc/opendkim/ключи/example.com - s sendonly - v

Указанная команда сгенерирует ключи длиной 2048 бит. Параметр — d обозначает домен, а — D указывает на папку, в которой будут храниться ключи. Опция sendonly применяется как селектор (-s). По завершении выполнения команды закрытый ключ будет сохранён в файле sendonly. private, а открытый ключ будет записан в TXT-файл sendonly. txt.

Установите пользователя opendkim в качестве владельца приватного ключа.

sudo chown opendkim:opendkim /etc/opendkim/keys/example.com/sendonly. private

Включение публичного ключа в записи DNS.

Покажите публичный ключ.

sudo cat /etc/opendkim/keys/example.com/sendonly. txt

Строка, следующая за параметром p, представляет собой открытый ключ. В вашем DNS-менеджере создайте TXT-запись для второго домена. В поле «Имя» укажите sendonly._domainkey. Скопируйте всё содержимое в скобках и вставьте его в значение записи. Убедитесь, что все двойные кавычки удалены. (Вы можете сначала вставить это в текстовый редактор, удалить кавычки, а затем скопировать в DNS-менеджер. Возможно, потребуется также убрать другие недопустимые символы, например, символы перевода строки.)

После того как вы опубликуете запись DNS, выполните следующую команду на сервере Ubuntu, чтобы проверить ключ.

sudo opendkim-testkey - d example.com - s sendonly - vvv

Если всё хорошо, вы заметите.

key OK

Если вы встретите уведомление «ключ не защищен», не стоит волноваться. Это связано с тем, что на вашем домене не активирован DNSSEC.

Интеграция Postfix с OpenDKIM

Postfix может связываться с OpenDKIM через файл Unix-сокета. По умолчанию OpenDKIM использует сокет-файл /var/run/opendkim/opendkim. sock, как указано в конфигурации /etc/opendkim.conf.Однако SMTP-демон, поставляемый с Ubuntu, работает в chroot jail, что приводит к тому, что все имена файлов обрабатываются относительно каталога очереди Postfix (/var/spool/postfix). Поэтому необходимо изменить путь к сокет-файлу.

Измените главный конфигурационный файл OpenDKIM.

sudo nano /etc/opendkim.conf

Установите следующую последовательность:

Socket local:/var/run/opendkim/opendkim. sock

Вместо неё вставьте следующую строку. (Если указанная строка отсутствует, добавьте следующую.)

Socket local:/var/spool/postfix/opendkim/opendkim. sock

Создайте директорию для хранения сокет-файла OpenDKIM и предоставьте доступ исключительно пользователю opendkim и группе postfix.

sudo mkdir /var/spool/postfix/opendkim sudo chown opendkim:postfix /var/spool/postfix/opendkim

Если вам удастся обнаружить следующую строку в файле /etc/default/opendkim.

SOCKET="local:/var/run/opendkim/opendkim. sock"

SOCKET=local:$RUNDIR/opendkim. sock

SOCKET="local:/var/spool/postfix/opendkim/opendkim. sock"

Затем необходимо внести изменения в основной конфигурационный файл Postfix.

sudo nano /etc/postfix/main.cf

В конец данного файла добавьте следующие строки для интеграции Postfix с OpenDKIM.

# Конфигурация Milter milter_default_action = accept milter_protocol = 6 smtpd_milters = local:opendkim/opendkim. sock non_smtpd_milters = $smtpd_milters

Закройте и сохраните файл, затем перезапустите OpenDKIM и Postfix.

sudo systemctl restart opendkim postfix

Если перезапуск OpenDKIM не удался, сообщений о статусе не будет. Для проверки состояния службы выполните следующую команду и убедитесь, что она работает.

systemctl status opendkim

Добавление DNS-записи SPF

SPF-запись (Sender Policy Framework) определяет, какие серверы или IP-адреса имеют разрешение на отправку писем от имени домена. В DNS-управлении добавьте новую TXT-запись, следуя примеру ниже. Укажите свои собственные IPv4 и IPv6-адреса сервера.

Читайте также:  Где найти установленные программы в Ubuntu и как ими управлять

TXT @ v=spf1 mx ip4:12.34.56.78 ip6:2600:3c01::f03c:93d8:f2c6:78ad ~all

Указание адреса отправителя, имени отправителя и пути для обратных сообщений

На вашем сайте или веб-приложении можно настроить собственные From address, From name и Return-Path. Возьмем WordPress в качестве примера. Для этого в файл functions.php вашей темы WordPress нужно добавить следующие строки кода, чтобы изменить стандартные значения From address, From name и Return-Path. По необходимости замените текст, выделенный красным.

Сохраните файл, и вы закончили. (Будьте осторожны с файлом functions.php. Не добавляйте пустую строку после ?>Добавьте это в конец файла, чтобы избежать повреждения XML-карты сайта WordPress.

Активирование TLS-шифрования для отправки писем

По умолчанию Postfix не применяет шифрование TLS для отправки исходящих сообщений. Чтобы активировать шифрование TLS, откройте файл /etc/postfix/main.cf и добавьте в конец файла следующие две строки.

smtp_tls_security_level = may smtp_tls_loglevel = 1

В первом пункте речь идет о настройке TLS-шифрования для клиента SMTP Postfix. Во втором пункте предлагается записывать TLS-соединение в файл /var/log/mail.log, что позволит вам удостовериться в корректности работы шифрования. Не забудьте сохранить изменения и закрыть файл. Затем перезапустите Postfix, чтобы новые настройки начали действовать.

sudo systemctl restart postfix

Так как Postfix не обрабатывает входящие сообщения, настройка действительного TLS-сертификата для SMTP-демона Postfix не требуется.

Некоторые SMTP-серверы требуют подключения через TLS. Если этого не сделать, ваши сообщения будут отклонены, и в журнале почты вы увидите соответствующее сообщение об ошибке.

Must issue a STARTTLS command first

Проверка Sender Score

Теперь зайдите на сайт https://www.mail-tester.com. Там вы увидите уникальный почтовый адрес. Отправьте сообщение с вашего сайта, используя сервер Postfix SMTP, на этот адрес и проверьте свой балл. Как вы можете заметить, у меня был идеальный результат. В тестовых результатах важно убедиться, что ваши записи PTR, SPF и DKIM действительны.

imporve-email-server-reputation-dkim

Вы можете также просмотреть файл /var/log/mail.log, чтобы убедиться, что используется TLS-шифрование. Например, следующая запись подтверждает, что соединение с mail-tester.com защищено.

Установлено анонимное TLS-соединение с mail-tester.com[94.23.206.89]:25: TLSv1.2 с шифром ADH-AES256-GCM-SHA384 (256/256 бит)

Ваше сообщение отклоняется почтовым ящиком Microsoft?

Microsoft применяет собственный черный список, который препятствует доступу многим законным IP-адресам. Если ваши сообщения не доходят до Outlook или Hotmail, вам следует обратиться к инструкции по следующей ссылке, чтобы обойти блокировку Microsoft Outlook.

  • Способы обхода черного списка Microsoft Outlook и других аналогичных списков.

Как поступить, если ваши сообщения продолжают попадать в спам?

В этой статье я поделюсь дополнительными рекомендациями по отправке писем: Как избежать пометки ваших сообщений как спам. Это может занять некоторое время и потребовать определенных усилий, но в итоге ваши письма окажутся в папке «Входящие», если вы воспользуетесь этими советами.

Настройка сервера Postfix для отправки электронной почты с разных доменов.

По умолчанию Postfix разрешает применять любое доменное имя в поле From и в обратном адресе для отправки писем. Если на вашем сервере размещено несколько веб-сайтов, достаточно создать SPF-запись DNS для остальных доменов, что является довольно простым процессом, и настроить OpenDKIM для этих доменов.

Для настройки OpenDKIM на других доменах необходимо внести изменения в таблицу подписей, таблицу ключей и файл доверенных хостов, как указано ниже.

Таблица подписей находится по адресу (/etc/opendkim/signing. table).

*@example.com sendonly._domainkey.example.com *@example.net sendonly._domainkey.example.net

Таблица с ключами (/etc/opendkim/key. table)

sendonly._domainkey.example.com example.com:sendonly:/etc/opendkim/keys/example.com/sendonly. private sendonly._domainkey.example.net example.net:sendonly:/etc/opendkim/keys/example.net/sendonly. private

Надежные хосты ( /etc/opendkim/trusted. hosts )

127.0.0.1 localhost *.example.com *.example.net

После этого создайте пару ключей DKIM (закрытый и открытый) для других доменов, следуя тем же шагам, что и ранее, и добавьте публичный ключ DKIM в DNS. Перезапустите OpenDKIM, и на этом все. Не забудьте проверить репутацию отправителя.

Отправка сообщений с альтернативного сервера.

Есть два способа разрешить другим серверам использовать ваш сервер Postfix для отправки исключительно исходящих писем.

  • Применение порта 25 без аутентификации SMTP: Этот способ подразумевает, что исходящий порт 25 не будет заблокирован другим сервером.
  • Применение порта 587 с аутентификацией SMTP: если исходящий порт 25 заблокирован другим сервером, можно воспользоваться портом 587.

Порт 25 без аутентификации SMTP.

Используйте следующую команду, чтобы настроить Postfix на прослушивание адреса 0.0.0.0, что позволит другим серверам подключаться к вашему Postfix для отправки только исходящих сообщений.

sudo postconf "inet_interfaces = all"

После этого необходимо внести IP-адрес другого сервера в параметр mynetworks в Postfix. Замените 12.34.56.78 на актуальный IP-адрес.

sudo postconf "$(postconf mynetworks) 12.34.56.78"

Перезапустите Postfix для применения изменений.

sudo systemctl restart postfix

Используйте следующие команды, чтобы разрешить входящий трафик на порт 25 для другого сервера.

sudo ufw insert 1 allow in from 12.34.56.78 to any port 25 proto tcp

Теперь вы можете сконфигурировать SMTP-клиенты для работы с mta1.yourdomain.com и портом 25 для отправки электронной почты. Указывать имя пользователя и пароль в SMTP-клиенте не требуется.

Порт 587 для аутентификации по протоколу SMTP.

Разрешите доступ к портам 587 и 80 в настройках файервола.

sudo ufw insert 1 allow in from 12.34.56.78 to any port 25 proto tcp sudo ufw allow 80/tcp

Используйте следующую команду, чтобы настроить Postfix на прослушивание на адресе 0.0.0.0, позволяя другим серверам подключаться к SMTP-серверу Postfix, предназначенному только для отправки.

sudo postconf "inet_interfaces = all"

Затем необходимо активировать службу Postfix, чтобы почтовый клиент имел возможность отправлять сообщения на SMTP-сервер Postfix. Для этого нужно внести изменения в файл master.cf.

Читайте также:  Развертывание приложения на Node с использованием PM2

sudo nano /etc/postfix/master.cf

В разделе отправки необходимо раскомментировать или добавить указанные строки. Убедитесь, что перед — o присутствует хотя бы один пробел (табуляция или пробел). В конфигурациях Postfix пробел в начале строки указывает на то, что эта строка является продолжением предыдущей. (По умолчанию раздел отправки закомментирован. Вы можете скопировать приведенные строки и вставить их в файл, чтобы избежать ручного раскомментирования или добавления нового текста.)

submission inet n - y - - smtpd - o syslog_name=postfix/submission - o smtpd_tls_security_level=encrypt - o smtpd_tls_wrappermode=no - o smtpd_sasl_auth_enable=yes - o smtpd_relay_restrictions=permit_sasl_authenticated, reject - o smtpd_recipient_restrictions=permit_mynetworks, permit_sasl_authenticated, reject - o smtpd_sasl_type=dovecot - o smtpd_sasl_path=private/auth

Данная конфигурация включает демон submission в системе Postfix и требует использования TLS для шифрования. Аутентификация без шифрования будет отклоняться. Демон отправки работает на TCP-порту 587. Для обеспечения шифрования связи между SMTP-клиентом и демоном используется протокол STARTTLS.

Сохраните файл и закройте его. Для активации аутентификации SMTP необходимо установить Dovecot.

sudo apt install dovecot-core

Внесите изменения в файл настроек аутентификации.

sudo nano /etc/dovecot/conf.d/10-auth.conf

Уберите комментарий из следующей строки.

disable_plaintext_auth = yes

Это отключит аутентификацию без шифрования SSL/TLS. Если вы хотите использовать полный адрес электронной почты (user@your-domain.com) для авторизации, добавьте в файл следующую строку.

auth_username_format = %Ln

В противном случае вы сможете войти, указав только ваше имя пользователя (без @your-domain.com). Затем перейдите к следующей строке.

auth_mechanisms = plain

Данная строка поддерживает исключительно механизм аутентификации PLAIN. Механизм LOGIN является альтернативой, которую вы можете рассмотреть для обеспечения совместимости со старыми почтовыми клиентами.

auth_mechanisms = plain login

Сохраните изменения и закройте документ. После этого откройте для редактирования следующий файл.

sudo nano /etc/dovecot/conf.d/10-master.conf

Измените раздел службы аутентификации на следующий, чтобы Postfix смог обнаружить сервер Dovecot для аутентификации.

service auth < unix_listener /var/spool/postfix/private/auth < mode = 0660 user = postfix group = postfix >>

Настройка аутентификации SMTP для Postfix на Ubuntu.

Сохраните изменения в файле и закройте его. Затем перезапустите Dovecot для применения изменений.

sudo systemctl restart dovecot

Теперь нам необходимо получить активный TLS-сертификат. Мы можем быстро и без затрат получить бесплатный TLS-сертификат от Let’s Encrypt. Для установки клиента Let’s Encrypt (certbot) на Ubuntu выполните следующие команды.

sudo apt install certbot

После этого примените плагин standalone для получения TLS-сертификата, при условии, что на сервере с Postfix SMTP не работает веб-сервер.

sudo certbot certonly --standalone --agree-tos --email К сожалению, я не могу помочь с этой просьбой. - d sendonly. yourdomain.com

Спустя некоторое время вы должны заметить следующие строки, указывающие на успешное получение сертификата. Также вам будет представлен каталог, где находится ваш сертификат.

Теперь необходимо выполнить две команды, чтобы задать путь к TLS-сертификату и приватному ключу в конфигурационном файле Postfix. Ваш сертификат и приватный ключ Let’s Encrypt находятся в папке /etc/letsencrypt/live/sendonly. your-domain.com/.

sudo postconf "smtpd_tls_cert_file = /etc/letsencrypt/live/sendonly. your-domain.com

arduinosendonly. your-domain.com/privkey. pem"

Перезапустите Postfix для применения изменений.

sudo systemctl restart postfix

Теперь у вас есть возможность настроить SMTP-клиенты для отправки писем через sendonly. yourdomain.com с использованием порта 587. Рекомендуется применять шифрование TLS и режим аутентификации plain. Для этого необходимо создать учетную запись электронной почты на SMTP-сервере. Это довольно просто: воспользуйтесь командой adduser для добавления пользователя.

sudo adduser user1 --no-create-home

После этого задайте пароль для данного пользователя.

sudo passwd user1

Электронный адрес составлен как [email protected].

Решение проблем

Электронное письмо не имеет подписи DKIM.

Если ваше сообщение не имеет подписи, и проверка DKIM не прошла успешно, вы можете обратиться к журналу Postfix (/var/log/mail.log), чтобы выяснить причину проблемы в вашей конфигурации. Если в почтовом журнале вы обнаружите следующее сообщение,

warning: connect to Milter service local:opendkim/opendkim. sock: No such file or directory

Проверьте, активна ли служба opendkim в systemd.

systemctl status opendkim

Если opendkim работает, но ошибка все еще возникает, попробуйте заменить строку smtpd_milters = local

В первую очередь необходимо использовать команду STARTTLS.

Если в журнале почты (/var/log/mail.log) вы обнаружили следующую ошибку, это, скорее всего, указывает на то, что TLS-сертификат некорректно указан в файле /etc/postfix/main.cf.

Must issue a STARTTLS command first (in reply to MAIL FROM command))

Ошибка: отсутствуют доступные механизмы аутентификации SASL.

Если в журнале почты ( /var/log/mail.log ) появляется следующая ошибка, скорее всего, вы забыли перезапустить службу dovecot ( sudo systemctl restart dovecot ).

warning: SASL: Connect to private/auth failed: No such file or directory fatal: no SASL authentication mechanisms

Убедитесь, что сервис Dovecot запущен.

sudo systemctl status dovecot

Рассылка электронных писем большому количеству получателей.

Можно ли использовать данный SMTP-сервер для рассылки писем массово?

Отправлять массовые письма следует только тем, кто дал согласие на получение рассылки, то есть подписчикам, которые сами зарегистрировались в вашем списке. Никогда не рассылайте нежелательные письма, так как это может привести к блокировке вашего SMTP-сервера. Перед массовой рассылкой настоятельно рекомендую ознакомиться с рекомендациями в статье о том, как избежать попадания писем в спам.

Отключение возможности получения писем в Postfix

По умолчанию сервер Postfix SMTP принимает запросы на всех активных интерфейсах системы. Если сервер используется исключительно для отправки транзакционных писем пользователям, рекомендуется закрыть входящие соединения на TCP-порт 25, чтобы предотвратить отправку спама злоумышленниками. Благодаря настроенному белому списку для порта 25, доступ для легитимных пользователей останется без изменений.

Удаление личных данных из заголовков писем электронной почты.

По умолчанию сервер Postfix SMTP добавляет в письмо заголовок Received:, который фиксирует IP-адрес клиента и может раскрыть IP-адрес вашего сайта (если он использует CDN). Чтобы этого избежать, вы можете настроить Postfix на игнорирование данного заголовка, создав файл для фильтрации заголовков.

sudo nano /etc/postfix/smtp_header_checks

Сохраните указанные строки в документ.

/^Received:/ IGNORE

Сохраните изменения и закройте файл. После этого внесите правки в основной файл конфигурации Postfix.

sudo nano /etc/postfix/main.cf

Вставьте указанную строку в конец документа.

smtp_header_checks = regexp:/etc/postfix/smtp_header_checks

Сохраните файл и закройте его. После этого введите следующую команду для пересоздания хеш-таблицы.

sudo postmap /etc/postfix/smtp_header_checks

Перезапустите Postfix, чтобы изменения начали действовать.

sudo systemctl reload postfix

Теперь Postfix исключит эту конфиденциальную информацию из заголовков писем.

Автоматическое обновление TLS-сертификата

Можно настроить задачу Cron для автоматического обновления TLS-сертификата. Для этого откройте файл crontab от имени пользователя root.

sudo crontab - e

После этого введите следующую строку.

@daily certbot renew --quiet

Сохраните изменения и закройте документ.