Ubuntu 22.04.3 LTS – отправить почту mail.ru из терминала можно по средствам комплекта Postfix + GNU Mailutils.
Нам понадобиться:
1. Включить возможность работы с внешними сервисами на mail.ru.
2. Пароль для приложений сгенерированный на mail.ru.
3. Postfix 3.6.4 — агент передачи почты.
4. GNU Mailutils 3.14 — набор ПО, состоящий из утилит, программ и библиотек для обработки электронной почты.
Немного теории — для отправки писем, заходим на страницу настроек mail.ru, в настройки – безопасность – включаем работу внешних сервисов и генерируем пароль для приложений. На нашей машине Ubuntu устанавливаем комплект Postfix + Mailutils, настраиваем авторизацию postfix, отправляем письма командой mail
Шаг 1 настраиваем наш ящик mail.ru
Заходим в настройки

Все настройки

Безопасность

Включаем внешние сервисы и генерируем пароль для внешних приложений

Шаг 2 устанавливаем требуемое ПО
sudo apt-get install postfix mailutils

Окно конфигурации Postfix, указываем Без настойки
Сохраняем SMTP имя и пароль пользователя почты, файл настройки sasl_passwd
nano /etc/postfix/sasl_passwd
указываем
[smtp.mail.ru]:587 mailbox@yourdomen.ru:your_app_password
ctrl+o потом ctrl+x
назначаем права вновь созданному файлу sasl_passwd где только владелец файла может читать/записывать
chmod 600 /etc/postfix/sasl_passwd
Создаем конфигурационный файл Postfix
nano /etc/postfix/main.cf
Куда в последствии вставляем следующие строки
relayhost = [smtp.mail.ru]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_tls_security_options = noanonymous
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
alias_maps = hash:/etc/aliases
Создаем файл-хэш базы данных sasl_passwd.db в каталоге /etc/postfix/ с помощью команды postmap. Этот файл используется для запросов Postfix.
postmap /etc/postfix/sasl_passwd
Перезапускаем сервис Postfix
systemctl restart postfix.service
Проверяем работу Postfix
sudo service postfix status
Производим пробную отправку письма на произвольный почтовый ящик
echo "Пробный текст в теле письма" | mail -s "Тема тестового сообщения" получатель@mail.ru -aFrom:mailbox@youdomen.ru
Если нужно прикрепить к пиьсу файл, до добавляем -A /путь к файлу/файл
echo "Пробный текст в теле письма" | mail -s "Тема тестового сообщения" -A /путь_к_файлу/файл получатель@mail.ru -aFrom:mailbox@youdomen.ru
На этом все.
