PHP - 553 Запрещена ретрансляция почты Zoho и MyBB

Я пытаюсь использовать SMTP-серверы Zoho для отправки регистрационных писем из инсталляции MyBB. Однако электронные письма никогда не отправляются, и когда я проверяю логи, я замечаю, что ошибка есть.

Month Day Year:Hour:Minute host=smtp.zoho.com tls=on auth=on user=user[at]mydomain.com from=user[at]mydomain.com recipients=some.user[at]gmail.com smtpstatus=553 smtpmsg='553 Relaying disallowed' errormsg='the server did not accept the mail' exitcode=EX_UNAVAILABLE

(Некоторые части были замаскированы, чтобы скрыть личную информацию!)

Это путь sendmail, заданный в php.ini

sendmail_path = "/usr/bin/msmtp -C /etc/msmtp/myserver --logfile /var/log/msmtp/myserver.log -a default -t"

(Некоторые части были замаскированы, чтобы скрыть личную информацию!)

Это конфигурация myserver для MSMTP

# Define here some setting that can be useful for every account
defaults
    logfile /var/log/msmtp/general.log

# Settings for default account
account default
    protocol smtp
    host smtp.zoho.com
    tls on
    tls_starttls off
    tls_certcheck off
    port 465
    auth plain
    user user[at]mydomain.com
    password **********
    from user[at]mydomain.com
    logfile /var/log/msmtp/myserver.log

# If you don't use any "-a" parameter in your command line,
# the default account "default" will be used.
# account default: default # (disabled because this gives a "redefined" error)

(Некоторые части были замаскированы, чтобы скрыть личную информацию!)

Проблема в том, что я знаю, что это работает, и что никакие порты не заблокированы, потому что, когда я использую ту же команду в командной строке. Письмо успешно отправлено и получено.

sudo echo -e "Subject: Test Mail\r\n\r\nThis is a test mail" | msmtp --debug -a default --from=user[at]mydomain.com -t some.user[at]gmail.com --file=/etc/msmtp/myserver

(Некоторые части были замаскированы, чтобы скрыть личную информацию!)

Это значит, что либо MyBB отправляет электронные письма, либо что-то не так, или что-то не так с моей конфигурацией PHP или командной строкой, которые я установил в файле php.ini.

Я искал это весь день, но каждый полученный результат либо не связан с PHP, либо никогда не работал с самого начала. И мой работает из командной строки, но не из PHP.

Я использую UFW на сервере, и каждый порт полностью открыт, поэтому я предполагаю, что он не связан с заблокированными портами.

Это работало с Gmail, но каждое письмо отправлялось в папку со спамом, и оно не работало каждый раз с каждым письмом.

РЕДАКТИРОВАТЬ: Я пытался отправить письмо с PHP5-CLI, и это сработало. Поэтому я предполагаю, что это либо что-то не так с PHP5-FPM или MyBB.

1 ответ

Я не могу проверить это без установки MyBB, но если она использует собственную почтовую функцию PHP, вам может понадобиться добавить опцию -f к вызову функции mail(), так как вы используете sendmail. Обратите внимание, что это 5-й параметр (Я потратил впустую день, думая, что это был четвертый)

mail('nobody@example.com', 'the subject', 'the message', null,
'-flocaluserr@thisdomain.com'); 
Другие вопросы по тегам