```sh sudo apt update && sudo apt upgrade -y sudo apt install postfix mailutils ``` ### Настройка Postfix Данный раздел покажет, как настроить Postfix для отправки сообщений с сервера, на котором он установлен (то есть, с локального хоста). Для этого Postfix должен быть настроен на прослушивание только интерфейса внутренней петли (loopback interface) – это виртуальный сетевой интерфейс, который используется сервером для внутреннего взаимодействия. Откройте конфигурационный файл Postfix с помощью редактора nano: `sudo nano /etc/postfix/main.cf` Найдите в нем следующий блок кода: `mailbox_size_limit = 0 `recipient_delimiter = + `inet_interfaces = all` Замените строку `inet_interfaces = all строкой `inet_interfaces = loopback-only Теперь этот блок выглядит так: `mailbox_size_limit = 0 `recipient_delimiter = + `inet_interfaces = loopback-only` Вместо loopback-only можно также использовать localhost: `mailbox_size_limit = 0 `recipient_delimiter = + `inet_interfaces = localhost` Завершив редактирование файла, сохраните изменения и закройте его (CTRL+X, затем Y и ENTER). После этого перезапустите Postfix: `sudo service postfix restart` `sudo systemctl restart postfix` ### 1. Синтаксис (В ТЕМЕ И ТЕКСТЕ СООБЩЕНИЯ ИСПОЛЬЗОВАТЬ ТОЛЬКО ENG !!!) Можно отправить сообщение следующей командой: `echo "Test text" | mail -s "Test title" master@dmosk.ru _* в данном примере будет отправлено письмо на электронный адрес **master@dmosk.ru** с темой **Test title** и телом письма — **Test text**._ Если при отправке возникли проблемы, можно проверить логи следующей командой: `tail /var/log/mail.log ### 2. Отправка письма с вложением `echo 'Attachment' | mail -s 'Subject attachment message' -a /var/log/maillog -a /var/log/maillog2 master@dmosk.ru ... или: `echo 'Attachment' | mail -s 'Subject attachment message' -A /var/log/maillog -A /var/log/maillog2 master@dmosk.ru _* где **/var/log/maillog** и **/var/log/maillog2** — файлы, которые будут прикреплены к письму. Обратите внимание, что обе команды отличаются по регистру опции **a** и **A** — все зависит от версии и сборки Linux (в каких-то нужно использовать маленькую, в каких-то — большую). Также обратите внимание, что в примере для Ubuntu мы отправим 2 файла — для этого просто добавляем к команде еще одну опцию прикрепления файла._ ### 3. Несколько получателей Для отправки письма нескольким получателям, просто перечисляем их через запятую: `echo "Test text" | mail -s "Test title" master@dmosk.ru,shmaster@dmosk.ru _* в данном примере мы отправил письмо на ящики **master@dmosk.ru** и **shmaster@dmosk.ru**._ ### 4. Отправка с копией Отправить копию на адрес master2@dmosk.ru: `echo "Test copy" | mail -s "Test copy title" master@dmosk.ru -c master2@dmosk.ru Отправить скрытую копию на адрес master3@dmosk.ru: `echo "Test hidden copy" | mail -s "Test hidden copy title" master@dmosk.ru -b master3@dmosk.ru ### 5. Указать отправителя `echo "Test text" | mail -s "Test title" master@dmosk.ru -aFrom:postmaster@dmosk.ru ### 6. Отправка через внешний SMTP сервер **а) Для Ubuntu / Debian:** `echo "Test text" | mail -s "Test title" -a "Smtp: smtp.mail.ru:25" -a "From: postmaster@dmosk.ru" -a "Return-path: postmaster@dmosk.ru" master@dmosk.ru Однако, если сторонний почтовый сервер работает по шифрованному каналу и требует аутентификацию, необходимо ввести следующее: `echo "Test text" | mail -v -s "Test title" -S smtp="smtp.dmosk.ru:587" -S smtp-use-starttls -S smtp-auth=login -S smtp-auth-user="master@dmosk.ru" -S smtp-auth-password="password" -S ssl-verify=ignore -S nss-config-dir=/etc/pki/nssdb -S from=postmaster@dmosk.ru master@dmosk.ru * где: - **smtp.dmosk.ru** — сервер smtp;  - **587** — порт для подключения к серверу отправки;  - **smtp-use-starttls** указывает на использование шифрования через TLS;  - **smtp-auth=login** задает аутентификацию с использованием логина и пароля;  - **smtp-auth-user** и **smtp-auth-password** — соответственно логин и пароль;  - **ssl-verify=ignore** отключает проверку подлинности сертификата безопасности;  - **nss-config-dir** указывает на каталог с базами nss;  - **from** задает поле FROM