Вопрос или проблема
Я хочу отправить простое письмо с моего терминала Ubuntu на свой аккаунт GMail (в случае, если mdadm не сработает или скрипт на Python вызовет фатическое исключение). На этом компьютере у меня установлен и работает Thunderbird. Я установил mailutils. Мой файл ~/.msmtprc
выглядит следующим образом:
logfile ~/msmtp.log
account gmail
auth login
host smtp.gmail.com
from [email protected]
tls off
user [email protected]
password ********
port 587
account default : gmail
Когда я выполняю mail -s "Тема моего письма" "[email protected]"
из терминала, я нажимаю Enter на подсказке Cc:, ввожу текст для тела письма, затем нажимаю Ctrl-D, я получаю следующие ошибки:
msmtp: no recipients found
Отправка данных в /usr/bin/msmtp завершилась неудачно: Процесс завершился с ненулевым статусом
не могу отправить сообщение: Процесс завершился с ненулевым статусом
Если я использую msmtp "[email protected]"
в терминале (похоже, что он не позволяет мне ввести тему), ввожу текст тела, нажимаю Ctrl-D, я получаю ошибку: msmtp: /data/stuart/.msmtprc: line 13: account default was already defined
. Если я удаляю запись Account default из ~/.msmtprc
, я получаю ошибку msmtp: account default from /data/stuart/.msmtprc: host not set
.
Я считаю, что отправка писем на адрес Gmail слегка сложнее, но не уверен, что мне нужно делать с этим. Я видел много разных версий файла ~/.msmtprc
, но не знаю, какая из них правильная.
Может кто-то сказать мне, что я делаю неправильно, пожалуйста?
Ответ или решение
Вопрос: Не получается отправить электронное письмо из терминала Ubuntu 24.04
Введение
Отправка электронных писем из терминала Ubuntu может показаться сложной задачей, особенно при конфигурации почтового клиента, такого как msmtp, для работы с Gmail. Несмотря на наличие Thunderbird и установленного пакета mailutils, возникли проблемы с отправкой сообщений. Давайте разберемся в ситуации и предложим правильные шаги по настройке вашего окружения.
Анализ проблемы
1. Ошибка «no recipients found»
Ошибка «msmtp: no recipients found» указывает на то, что получатель не был правильно указан. При использовании команды mail
необходимо убедиться, что все параметры передаются корректно. Ваша команда должна выглядеть следующим образом:
echo "Текст сообщения" | mail -s "Моя Тема" [email protected]
Обратите внимание, что текст сообщения передается через echo
перед отправкой команды. Операция Ctrl-D
должна завершить ввод текста, и это не повлияет на наличие получателя.
2. Ошибка «account default was already defined»
Ваша конфигурация в файле ~/.msmtprc
содержит лишнюю запись с названием аккаунта. Следует упростить конфигурацию, избегая дублирования. Вот корректный формат:
logfile ~/msmtp.log
account gmail
auth login
host smtp.gmail.com
from [email protected]
tls on
user [email protected]
password ********
port 587
Убедитесь, что параметр tls
установлен в on
, так как Google требует использования защищенного соединения для SMTP.
3. Ошибка «host not set»
Если вы удалите строку account default : gmail
, и возникнет ошибка «host не установлен», это может означать, что вы не указали правильный аккаунт по умолчанию. Если вы хотите оставить возможность использования нескольких аккаунтов, вы должны добавить следующее:
account default : gmail
Это необходимо для указания msmtp, какой аккаунт использовать по умолчанию.
Настройка Gmail
Gmail требует дополнительной конфигурации:
- Убедитесь, что включен доступ для небезопасных приложений в настройках безопасности вашего Google-аккаунта.
- Можно рассмотреть использование пароля приложения, если включена двухэтапная аутентификация.
Проверка конфигурации
После всех изменений проверьте файл конфигурации:
cat ~/.msmtprc
Затем выполните команды для отправки:
echo "Тестовое сообщение" | msmtp [email protected]
Заключение
Если вы выполните вышеперечисленные шаги и убедитесь, что ваша конфигурация msmtp является правильной, вы должны без проблем отправить електронные письма из терминала Ubuntu на ваш адрес Gmail. Если возникнут дальнейшие затруднения, проверьте логи в ~/msmtp.log
для получения дополнительных подсказок об ошибках. Успехов!