Вопрос или проблема
Мне нужна помощь с postfix на OSX. Тестирую с помощью этой команды:
echo "тестовое письмо" | mail -s "тестовое письмо" [email protected]```
Не получается вывести результат в /var/mail/jeff
postfix работает:
sudo postfix status
postfix/postfix-script: почтовая система Postfix работает: PID: 8781
Я также не вижу активности журнала postfix в /var/log/ или через:
sudo log stream --predicate 'sender == "postfix"'
Мой файл main.cf приведен ниже.
compatibility_level = 2
queue_directory = /private/var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
mail_owner = _postfix
unknown_local_recipient_reject_code = 550
sendmail_path = /usr/sbin/sendmail
newaliases_path = /usr/bin/newaliases
mailq_path = /usr/bin/mailq
setgid_group = _postdrop
html_directory = /usr/share/doc/postfix/html
manpage_directory = /usr/share/man
sample_directory = /usr/share/doc/postfix/examples
readme_directory = /usr/share/doc/postfix
message_size_limit = 10485760
mailbox_size_limit = 0
biff = no
inet_interfaces = all
inet_protocols = ipv4
myhostname = m1.lan
mydestination = m1.lan, localhost.localdomain, localhost
myorigin = m1.lan
relayhost =
mynetworks = 127.0.0.0/8 192.168.1.0/24 172.18.0.0/16 172.19.0.0/16 172.17.0.0/16
mailbox_size_limit = 0
recipient_delimiter = +
default_transport = smtp
relay_transport = smtp
smtpd_relay_restrictions = permit_mynetworks, reject_unauth_destination
smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination
Тестирование с telnet:
jeff@m1 Desktop $ telnet localhost 25
Попытка ::1...
telnet: соединение с адресом ::1: Соединение отклонено
Попытка 127.0.0.1...
Соединено с localhost.
Символ экранирования '^]'.
220 m1.lan ESMTP Postfix
ehlo localhost
mail from: jeff@localhost
rcpt to: jeff@localhost
data
Тема: Мое первое письмо на Postfix
привет мир
250-m1.lan
250-PIPELINING
250-SIZE 10485760
250-VRFY
250-ETRN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250-DSN
250 SMTPUTF8
250 2.1.0 Ок
250 2.1.5 Ок
354 Завершите данные с <CR><LF>.<CR><LF>
.
250 2.0.0 Ок: поставлено в очередь как 016CF5AB29C7
^]
telnet> выход
Соединение закрыто.
jeff@m1 Desktop $ mailq
Очередь почты пуста
Ответ или решение
Проблемы с Postfix на OS X: Возможные Решения
Введение
Postfix — это популярный механизм передачи почты, который часто используется для обработки почтовых отправлений на серверах и локальных машинах. Если вы столкнулись с проблемами при использовании Postfix на системе OS X, в частности, если ваши тестовые письма не попадают в папку /var/mail/jeff, это может быть вызвано различными факторами. В этом руководстве мы рассмотрим основные шаги для устранения этой проблемы.
Проверка Статуса Postfix
Вы уже подтвердили, что Postfix запущен, используя команду:
sudo postfix status
Вывод о том, что система отправки почты работает, показывает, что служба запущена, и это хороший знак. Однако это не гарантирует, что письма будут правильно обрабатываться или доставляться.
Логи Postfix
Отсутствие логов в каталоге /var/log/ или через команду
sudo log stream --predicate 'sender == "postfix"'
указывает на проблему с логированием. Проверьте, правильно ли заданы пути для логов в файле конфигурации main.cf. По умолчанию логи Postfix могут не записываться в стандартный системный журнал. Для этого добавьте или измените следующую строку в вашем main.cf
:
maillog_file = /var/log/mail.log
Затем перезапустите Postfix, чтобы изменения вступили в силу:
sudo postfix reload
Проверка Конфигурации main.cf
Ваш файл конфигурации main.cf
выглядит в целом правильно, но есть несколько моментов, которые стоит проверить:
-
mydestination: Убедитесь, что имя хоста, указанное в параметре
mydestination
, допускает локальные почтовые адреса. Вы уже указалиmydestination = m1.lan, localhost.localdomain, localhost
. -
relayhost: Если вы планируете использовать сторонний SMTP-сервер для передачи почты, убедитесь, что вы правильно указали
relayhost
.
Тестирование с помощью Telnet
Вы провели тестирование с помощью Telnet и получили успешные ответы, что хороший знак. Однако отсутствие обработки отправленных писем указывает на то, что Postfix может не обрабатывать письма должным образом. После выполнения команды telnet
, вы получили сообщения о том, что письмо было поставлено в очередь ("250 2.0.0 Ok: queued as 016CF5AB29C7"), но оно не отображается в очереди командой mailq
.
Это может указывать на:
-
Проблемы с доставкой: Письмо не доходит до места назначения, возможно, из-за неправильного указания локального почтового ящика. Убедитесь, что для пользователя
jeff
корректно настроен почтовый ящик. Проверьте, как настроены локальные почтовые пользователи и файл/etc/aliases
. -
Проблемы с правами доступа: Убедитесь, что каталоги Postfix имеют правильные права доступа. Почтовые директории, такие как
/private/var/spool/postfix
, должны быть доступны для пользователя, под которым запускается Postfix.
Альтернативные Проверки
-
Используйте команду
postfix check
, чтобы проверить конфигурацию на наличие ошибок. -
Убедитесь, что все необходимые сервисы запущены, например,
master
:
sudo postfix start
Заключение
Проблема с доставкой почты в Postfix на OS X может быть вызвана различными факторами, включая конфигурационные проблемы, права доступа или проблемы с логированием. Следуя приведенным выше рекомендациям, вы сможете диагностировать и устранить неполадки в работе вашего почтового сервера. Если проблема не устраняется, рекомендую обратиться к официальной документации Postfix или специализированным форумам для дальнейшей помощи.