После долгого копания я могу согласиться с тем, что пришел к тому же выводу, что и @ gere.
Шокирующе, но $ex->getMessage();
имеет добавленную stackTrace.
Я нашелчто вы можете отключить это, закомментировав цикл foreach()
, который добавляет всю эту дополнительную информацию к сообщению в одном из основных файлов SwiftMailer.Это может стать проблемой в будущем, если вы решите обновить файлы SwiftMailer, но в качестве временного исправления, если ваша файловая структура такая же, как у меня, перейдите к (для меня это была строка 187):
/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Authhandler.php
и найдите функцию public function afterEhlo(Swift_Transport_SmtpAgent $agent)
В конце код выглядит так:
$message = 'Failed to authenticate on SMTP server with username "' . $this->username . '" using ' . $count . ' possible authenticators.';
foreach ($errors as $error) {
$message .= ' Authenticator ' . $error[0] . ' returned ' . $error[1] . '.';
}
throw new Swift_TransportException($message);
и закомментируйте цикл foreach()
или даже простовнутреннее выражение:
$message = 'Failed to authenticate on SMTP server with username "' . $this->username . '" using ' . $count . ' possible authenticators.';
/*foreach ($errors as $error) {
$message .= ' Authenticator ' . $error[0] . ' returned ' . $error[1] . '.';
}*/
throw new Swift_TransportException($message);
Редактировать: я забыл упомянуть, этот код перебирает каждый из аутентификаторов, которые используются при попытках аутентификации, и выплевывает ошибки, с которыми они сталкиваются, в виде стекатрассировка, это дополнительные данные, которые вы видите.Просто для пояснения.
Редактировать 2: Это было исправлено 24 дня назад путем замены строки 182:
$errors[] = [$authenticator->getAuthKeyword(), $e];
на:
$errors[] = [$authenticator->getAuthKeyword(), $e->getMessage()];
Как показывает сообщение о коммите на git, здесь