sendmail зависает / почта зависает

sendmail зависает / почта зависает

На всех компьютерах sendmail работает отлично, за исключением одного.

У всех одинаковые настройки папки конфигурации /etc/mail, я использовал rsync, чтобы убедиться, что они все совпадают.

Обычно эта команда работает нормально...

sendmail -t < мой-файл-электронной-почты.eml

Но на этом компьютере (все работают под управлением Ubuntu 20.04) процесс просто зависает.

Я попробовал "sendmail -t", который позволяет мне составлять письмо прямо из командной строки. Я нажимаю CTRL+D, но ничего не происходит. Я попробовал использовать команду "mail[email protected]" и смог написать, но когда я дохожу до строки cc:, оно зависает. Нажатие CTRL+Z выводит меня из состояния ожидания, и в конце концов письмо отправляется.

Что происходит, что заставляет sendmail/mail зависать в конце файла?

Похоже, нет способа полностью удалить и переустановить. Я попробовал "apt-get purge sendmail", и система говорит, что он удален, но ввод sendmail в командной строке все равно переводит меня в режим текстового редактора и все еще отправляет почту. А "whereis sendmail" все еще показывает его в /usr/sbin

Я просто не могу понять, что здесь происходит. Почему зависает на EOF? И почему только на этом одном компьютере?

Спасибо!

---- ОБНОВЛЕНИЕ ---- Я действительно не знаю, как читать вывод strace, но это было предложено. Вывод выглядит в основном одинаково на всех машинах, а эта часть является хвостом...

socket(AF_UNIX, SOCK_DGRAM|SOCK_CLOEXEC, 0) = 3
connect(3, {sa_family=AF_UNIX, sun_path="/dev/log"}, 110) = 0
sendto(3, "<18>May  6 12:27:19 sendmail[265"..., 120, MSG_NOSIGNAL, NULL, 0) = 120
write(2, "Program mode requires special pr"..., 69Program mode requires special privileges, e.g., root or TrustedUser.
) = 69
alarm(0)                                = 0
rt_sigprocmask(SIG_UNBLOCK, [ALRM], [], 8) = 0
getpid()                                = 26521
setuid(1000)                            = 0
exit_group(78)                          = ?
+++ exited with 78 +++

Но на одном компьютере, который завис, все останавливается здесь, на clock_nanosleep, которого нет на других.

socket(AF_UNIX, SOCK_DGRAM|SOCK_CLOEXEC, 0) = 3
connect(3, {sa_family=AF_UNIX, sun_path="/dev/log"}, 110) = 0
sendto(3, "<18>May  6 12:27:57 sendmail[688"..., 100, MSG_NOSIGNAL, NULL, 0) = 100
clock_nanosleep(CLOCK_REALTIME, 0, {tv_sec=60, tv_nsec=0}, 

Вот некоторая информация об sendmail на этом сервере:

$ which sendmail
/usr/sbin/sendmail

$ ls -l $(which sendmail)
lrwxrwxrwx 1 root root 26 Feb  3 15:51 /usr/sbin/sendmail -> /etc/alternatives/sendmail

$ ls -l /etc/alternatives/sendmail
lrwxrwxrwx 1 root root 30 May  6 06:39 /etc/alternatives/sendmail -> /usr/libexec/sendmail/sendmail

Конечная точка на других серверах заканчивается на /usr/lib/sm.bin/sendmail, но я не уверен, почему на ноутбуке с этой проблемой она заканчивается на libexec/sendmail, поскольку все они работают под управлением Ubuntu 22.04.

решение1

Я только что спустился в эту червоточину с той же 60-секундной задержкой.

У меня не было syslogd, но после его установки это появилось в /var/log/messages

May 12 17:52:43 myhost mail.crit sendmail[6955]: My unqualified host name (myhost) unknown; sleeping for retry 
May 12 17:52:47 myhost mail.crit sendmail[6960]: My unqualified host name (myhost) unknown; sleeping for retry 
May 12 17:52:52 myhost mail.crit sendmail[6974]: My unqualified host name (myhost) unknown; sleeping for retry

Попробуйте изменить имя хоста (и /etc/hosts) на полное доменное имя — myhost.localdomain или что-то подобное.

Связанный контент