Вопрос или проблема
Я пытался отправить электронное сообщение в качестве теста, используя mailx. Почтовый сервер находится на сервере Linux, на котором установлены и настроены dovecot и postfix.
Я выполнил инструкцию следующим образом на том же почтовом сервере:
echo "тест электронной почты" | mailx -v -s "тест электронной почты" \
-S smtp-use-starttls \
-S ssl-verify=ignore \
-S smtp-auth=login \
-S smtp=smtp://192.168.1.10:587 \
-S from="[email protected]" \
-S [email protected] \
-S smtp-auth-password=the_password \
-S ssl-verify=ignore \
-S nss-config-dir="/etc/pki/nssdb/" \
[email protected]
Проверив файл /var/log/maillog. Он показывает сообщения следующим образом:
Sep 24 10:47:11 serverMail postfix/submission/smtpd[41666]: предупреждение: не удается получить RSA сертификат из файла "/etc/pki/dovecot/certs/dovecot.pem": отключение поддержки TLS
Sep 24 10:47:11 serverMail postfix/submission/smtpd[41666]: предупреждение: проблема с библиотекой TLS: ошибка:0200100D:системная библиотека:fopen:Отказано в доступе:crypto/bio/bss_file.c:288:fopen('/etc/pki/dovecot/certs/dovecot.pem','r'):
Sep 24 10:47:11 serverMail postfix/submission/smtpd[41666]: предупреждение: проблема с библиотекой TLS: ошибка:20074002:BIO routines:file_ctrl:системная библиотека:crypto/bio/bss_file.c:290:
Sep 24 10:47:11 serverMail postfix/submission/smtpd[41666]: предупреждение: проблема с библиотекой TLS: ошибка:140DC002:SSL routines:use_certificate_chain_file:системная библиотека:ssl/ssl_rsa.c:596:
Sep 24 10:47:11 serverMail postfix/submission/smtpd[41666]: соединение от localhost[127.0.0.1]
Sep 24 10:47:11 serverMail postfix/submission/smtpd[41666]: потеряно соединение после STARTTLS от localhost[127.0.0.1]
Sep 24 10:47:11 serverMail postfix/cleanup[41669]: 18DAF200E2C92: идентификатор сообщения=<[email protected]>
Sep 24 10:47:11 serverMail postfix/submission/smtpd[41666]: отключено соединение от localhost[127.0.0.1] ehlo=1 starttls=0/1 команды=1/2
Sep 24 10:47:11 serverMail postfix/qmgr[20615]: 18DAF200E2C92: from=<[email protected]>, size=914, nrcpt=1 (очередь активна)
Sep 24 10:47:11 serverMail postfix/smtp[41674]: 18DAF200E2C92: to=<[email protected]>, orig_to=<postmaster>, relay=none, delay=0.05, delays=0.04/0.02/0/0, dsn=5.4.4, status=bounced (Имя хоста или домена не найдено. Ошибка службы имен для имени=domain.com тип=AAAA: Хост не найден)
Sep 24 10:47:11 serverMail postfix/bounce[41675]: предупреждение: 18DAF200E2C92: уведомление о недоставленном почтмейстере отклонено
Sep 24 10:47:11 serverMail postfix/qmgr[20615]: 18DAF200E2C92: удалено
Я вижу две вещи.
Во-первых, я получаю сообщение о том, что не удается получить
‘RSA сертификат из файла “/etc/pki/dovecot/certs/dovecot.pem”‘
и
‘Отказано в доступе:crypto/bio/bss_file.c:288:fopen(‘/etc/pki/dovecot/certs/dovecot.pem’,’r’
Я выполнил ll /etc/pki/dovecot/certs/ и получил
-rw-------. 1 root root 1221 set 19 09:45 dovecot.pem
Даже при изменении прав на 755 с помощью chmod. Тем не менее, это не работает.
Во-вторых, я получаю:
'(Имя хоста или домена не найдено. Ошибка службы имен для имени=domain.com тип=AAAA: Хост не найден)'
Я выполнил cat /etc/hosts. Он показывает следующие строки:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.10 serverMail
192.168.1.10 domain.com
Даже я добавил ‘192.168.1.10 domain.com’, но это тоже не работает.
Что я могу сделать, чтобы отправить электронные сообщения в качестве теста?
Ответ или решение
Для решения вашей проблемы с отправкой электронных писем через mailx, нам нужно исправить две основные проблемы, которые вы описали: проблемы с TLS и проблемы с разрешением доменного имени.
1. Проблема с сертификатом RSA
Судя по ошибке в журнале maillog, у вашей конфигурации Postfix нет доступа к файлу сертификата /etc/pki/dovecot/certs/dovecot.pem
. Ошибка Permission denied
указывает на то, что права доступа не позволяют программе, запущенной под пользователем, который управляет процессом Postfix, читать этот файл.
Решение:
-
Исправьте права доступа к файлу сертификата. Убедитесь, что файл доступен для чтения пользователем, под которым запущен Postfix (обычно это пользователь
postfix
илиdovecot
). Например, можно сделать так:chown postfix:postfix /etc/pki/dovecot/certs/dovecot.pem chmod 640 /etc/pki/dovecot/certs/dovecot.pem
-
Убедитесь, что родительские директории также имеют правильные права доступа. Например:
chmod 750 /etc/pki chmod 750 /etc/pki/dovecot chmod 750 /etc/pki/dovecot/certs
2. Проблема с разрешением доменного имени
Ошибка, связанная с доменным именем: Host or domain name not found. Name service error for name=domain.com type=AAAA: Host not found
, указывает на то, что ваш сервер не может разрешить domain.com
.
Решение:
-
Убедитесь, что в
/etc/hosts
запись дляdomain.com
добавлена правильно, как вы уже сделали:192.168.1.10 domain.com
-
Проверьте конфигурацию DNS-сервера, который использует ваш сервер. Убедитесь, что он может разрешать имена, и что записи правильно установлены. Например, проверьте файлы
/etc/resolv.conf
, чтобы убедиться в наличии корректных DNS-серверов, либо протестируйте разрешение доменов с помощью команды:nslookup domain.com
или
dig domain.com
-
Если DNS не настроен и вы тестируете локально, вы можете использовать файл
/etc/hosts
для временного решения. Убедитесь, чтоdomain.com
указывает на корректный локальный IP-адрес.
Заключение
После внесения указанных изменений, перезапустите Postfix и Dovecot для применения новых настроек:
systemctl restart postfix
systemctl restart dovecot
Затем попробуйте отправить тестовое письмо снова. Если проблемы продолжаются, проверьте журналы на наличие новых ошибок и убедитесь в правильности конфигурации всех используемых компонентов (Postfix, Dovecot, Mailx).