Назад | Перейти на главную страницу

Функция PHP mail () не работает - похоже, что exim по какой-то причине отклоняет

Я протестировал сценарий на другом сервере, и он отлично работает.

Когда я проверяю журналы exim, таких строк много,

User 0 set for local_delivery transport is on the never_users list

много как это

routing defer (-51): retry time not reached

и даже такие

R=lookuphost T=remote_smtp defer (-44): SMTP error from remote mail server after RCPT TO:

Честно говоря, я очень озадачен.

Вся почта в порядке при отправке с веб-почты / Outlook и т. Д.! У меня есть полный SSH и root-доступ, так как это VPS. Любая помощь приветствуется

Exim пытается доставить почту на удаленный SMTP-хост и терпит неудачу. Вот что:

R=lookuphost T=remote_smtp defer (-44): SMTP error from remote mail server after RCPT TO:

линии означают. Он ставит эти письма в очередь для повторной попытки и пропускает mailq, чтобы увидеть, следует ли попытаться повторно доставить какое-либо из этих писем. Он не будет пытаться сделать это сразу, должен быть достигнут заранее установленный тайм-аут. Это вызывает:

routing defer (-51): retry time not reached

Наконец, когда максимальное количество попыток повторной доставки достигнуто безуспешно, он пытается доставить почту почтмейстеру (который по умолчанию настроен как root). Однако по умолчанию exim никогда не доставляется в root, поэтому вы получите:

**User 0 set for local_delivery transport is on the never_users lis**t

Здесь есть две проблемы:

Во-первых: exim не может доставить на этот конкретный SMTP-сервер. Либо целевой SMTP-сервер сломан, либо exim не может доставить какие-либо SMTP-серверы. Доставляет ли exim почту на адреса в других доменах? Вы можете проверить это в командной строке с помощью:

/path/to/exim -v 'email@example.com'
message here
^D ( control D )

Во-вторых, у вас нет действующего способа для exim'a сообщать вам о сбоях. Настройте свой /etc/aliases файл, чтобы убедиться, что postmaster а другие учетные записи правильно привязаны к реальному адресу.