Вопрос или проблема
Я только что обновил версию с Ubuntu 22.04.1 LTS до Ubuntu 24.04.1 LTS, используя update-manager. За семнадцать лет это первый раз, когда я обновил версию без чистой установки, и это прошло «удивительно хорошо», с одним исключением: мне нужно вызвать
sudo`/etc/init.d/sendmail reload
прежде чем я смогу отправить себе электронное письмо из командной строки. В противном случае я получаю
stat=Deferred: Connection refused by [127.0.0.1]
в /var/log/mail.log.
Моя система была настроена согласно инструкциям на https://linuxconfig.org/configuring-gmail-as-sendmail-email-relay. В предыдущей версии все работало без проблем. При проверке /etc/mail и /etc/mail/auth-info кажется, что хеш-карта для /etc/mail/authinfo/gmail-auth была сделана корректно, и что «переделка» /etc/mail/sendmail.mc также была выполнена правильно установкой.
Тем не менее, если я вызываю что-то вроде
echo "Just testing my sendmail gmail relay" | mail -s "Sendmail gmail Relay" [email protected]
я получаю вышеупомянутую ошибку и никаких писем не поступает, пока я не перезагружу sendmail (см. код выше).
Я хотел бы решить эту проблему, чтобы не приходилось постоянно перезагружать sendmail. Любые идеи приветствуются.
Ответ или решение
Вопрос о необходимости перезагрузки Sendmail для работы с Gmail Relay стал особенно актуален после перехода на Ubuntu 24.04.1 LTS. Учитывая ваш опыт, это, конечно, может вызвать некоторые трудности в работе. Сначала давайте разберемся с тем, почему возникает необходимость в перезагрузке Sendmail после обновления.
Понимание проблемы
При нормальной работе Sendmail не должно требоваться его перезагрузка для отправки почты, если настройки не изменялись. Однако, в вашем случае, при попытке отправить электронное сообщение, возникает ошибка:
stat=Deferred: Connection refused by [127.0.0.1]
Это сообщение указывает на то, что Sendmail не может установить соединение с локальным SMTP-сервером. Ваши попытки отправить почту до выполнения команды sudo /etc/init.d/sendmail reload
не удаются, так как Sendmail не активирует новые или измененные параметры конфигурации.
Возможные причины
-
Изменения конфигурации при обновлении: Процесс обновления ОС иногда может затрагивать файлы конфигурации, даже если вы не планировали их изменять. Убедитесь, что файлы в
/etc/mail/
и, в частности,sendmail.mc
, настроены корректно и соответствуют предыдущей версии. -
Кэширование настроек: Возможные изменения в хэшированной базе данных для файла аутентификации
/etc/mail/authinfo/gmail-auth
. После обновления может потребоваться его «ремейк», и это зачастую требует перезагрузки Sendmail, чтобы применить новые изменения. -
Службы и зависимости: Возможно, другие сервисы или зависимости, на которые полагается Sendmail, не были автоматически перезапущены после обновления системы. Это может объяснять, почему Sendmail работает некорректно до тех пор, пока вы не выполните ручное обновление.
Рекомендации по устранению проблемы
Чтобы избежать необходимости постоянной перезагрузки Sendmail, следует выполнить несколько шагов:
-
Проверка конфигурации: Удостоверьтесь, что все настройки, касающиеся Gmail Relay, корректны. Проверьте файл
sendmail.mc
на наличие ошибок и убедитесь, чтоAUTHINFO
настроено правильно, запустив команду для генерации нового хеша:makemap hash /etc/mail/authinfo/gmail-auth < /etc/mail/authinfo/gmail-auth
-
Отладка логов: Просмотрите логи Sendmail для получения детальной информации о возникшей ошибке. Например, используйте команду:
tail -f /var/log/mail.log
Это поможет выявить, что происходит в момент попытки отправки письма.
-
Автоматизация перезагрузки: Если вышеуказанные шаги не помогли, можно попробовать автоматизировать процесс перезагрузки Sendmail. Например, можно создать cron-задачу, которая будет проверять статус Sendmail и при необходимости перезагружать его.
Заключение
Проблема с необходимостью перезагрузки Sendmail для Gmail Relay после обновления на Ubuntu 24.04.1 LTS может быть связана с изменениями конфигурационных файлов и зависимостями. Следуя данным рекомендациям, вы можете стабилизировать работу вашего сервиса отправки почты и избежать лишних действий. Если проблема сохранится, рекомендуется обратиться к специалистам или изучить специализированные форумы, такие как Ask Ubuntu, для получения дополнительных советов от сообщества.