электронная почта — Как мы решаем ошибку 554 5.5.1 (без действительных получателей) при использовании PHP Swiftmailer?

При тестировании нашего почтового сервера мы наткнулись на ошибку, которая не позволяет нам отправлять почту через PHP, хотя регулярная отправка / получение по почте в почтовом ящике работает без каких-либо проблем.
У нас работает отдельный сервер Ubuntu 18.04, на котором есть только Mail-in-a-box со всеми необходимыми компонентами.

Вывод в текстовый файл error.log

Неустранимая ошибка PHP: Uncaught Swift_TransportException: ожидаемый ответ
код 354, но получил код «554» с сообщением «554 5.5.1 Ошибка: недействительно
Получатели \ г \ п»

PHP файл

$request_email = $_POST['request-email'];
$request_name = $_POST['request-name'];
$request_text = $_POST['request-text'];

$transport = (new Swift_SmtpTransport('data.abc.xy', 587, 'tls'))
->setUsername('[email protected]')
->setPassword('*******')
->setStreamOptions(array('ssl' => array('allow_self_signed' => true, 'verify_peer' => false)));

$mailer = (new Swift_Mailer($transport));

$message = (new Swift_Message('Name: '. $request_name))
->setFrom(['' . $request_email => '' . $request_name])
->setTo(['[email protected]'])
->setBody('E-Mail: ' . $request_email . $request_text)
->setContentType("text/html");

$result = $mailer->send($message);

Мы попытались переустановить все компоненты Mail-in-a-box и все компоненты и проверить все на наличие орфографических ошибок. Ricipient существует на нашем почтовом сервере и может получать и отправлять почту вручную через клиента.

0

Решение

554 5.5.1 ошибка — ошибка SMTP «нет действительных получателейMsgstr «Это может произойти, если вы неправильно написали адреса получателей, но может также произойти, если вы не проходите надлежащую аутентификацию на исходящем сервере.

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

Вы можете поймать Swift_TransportException ошибка и обрабатывать его в своей собственной кодовой базе, например:

try {
$result = $mailer->send($message);
}
catch (Swift_TransportException $e) {
echo $e->getMessage();
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]