У меня есть форма, которая предназначена только для администраторов. Админы могут добавлять пользователей с паролем по умолчанию 1234. Я также хотел бы отправить электронное письмо добавленному пользователю после успешного создания. Все работает нормально в контроллере, за исключением быстрой части почты. После отправки формы отладочная панель не отображает отправленные электронные письма. Если я выложу эту часть из инструкции if, она отлично работает, и я могу увидеть электронную почту в панели отладки. Однако все остальные части, которые содержатся в инструкции if, работают нормально.Быстрая почта не будет отправлять электронные письма
Это мой метод;
/**
* @Route("/add-user", name="adduser")
*/
public function addUserAction(Request $request){
$user = new User();
$addform = $this->createForm(NewUserType::class,$user);
$addform->handleRequest($request);
if ($addform->isSubmitted() && $addform->isValid()) {
$user->setRoles(array('ROLE_USER'));
$password = $this->get('security.password_encoder')
->encodePassword($user, $user->getPlainPassword());
$user->setPassword($password);
$cellphone = $addform->get('cellphone')->getData();
$ccode = $addform->get('ccode')->getData();
$cellphone = preg_replace("/[^0-9A-Za-z]/", "", $cellphone);
$user->setCcode($ccode);
$user->setCellphone($cellphone);
$user->setPlainPassword(1234);
$user->setPassword(md5(1234));
$em = $this->getDoctrine()->getManager();
$em->persist($user);
$em->flush();
$this->addFlash(
'addeduser',
'You successfully added a user to the database'
);
$emailMessage = \Swift_Message::newInstance()
->setSubject('You have successfully signed up')
->setFrom('[email protected]')
->setTo($user->getUsername())
->setBody($this->renderView(':emails:addeduser.html.twig'));
$this->get('mailer')->send($emailMessage);
return $this->redirect($this->generateUrl('adduser'));
}
else{
$this->addFlash(
'addusererror',
'Oops! There was an error!'
);
}
return $this->render(':user:adduser.html.twig', array('addform'=>$addform->createView()));
}
не работает ** HOW **? –
Что именно происходит? У вас есть ошибка или что? –
Извините, что не упоминал об этом. Я также отредактировал этот вопрос. Проблема в том, что когда я отправляю форму, если инструкция swiftmailer в if, ничего не происходит. Отладочная панель ничего не показывает. Однако, если я беру swiftmailer из инструкции if, на панели отладки отображается электронное письмо, как предполагалось. – mburakergenc