Swift 邮件程序不会发送电子邮件
Swift mailer won't send emails
我有一个仅供管理员使用的表格。管理员可以使用默认密码 1234 添加用户。我还想在成功创建后向添加的用户发送电子邮件。除了 swift 邮件程序部分外,控制器中的一切工作正常。发送表单后,调试栏不会显示任何已发送的电子邮件。如果我把那部分放在 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('info@kampapp.com')
->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()));
}
如果您发送电子邮件然后立即重定向到另一个页面(您的情况),Web 调试工具栏将不会显示电子邮件图标或报告下一页。
相反,您可以在 config_dev.yml
文件中将 intercept_redirects
选项设置为 true
,这将导致重定向停止并允许您打开包含详细信息的报告已发送电子邮件。
# app/config/config_dev.yml
web_profiler:
intercept_redirects: true
在 documentation 中查看更多信息。
我有一个仅供管理员使用的表格。管理员可以使用默认密码 1234 添加用户。我还想在成功创建后向添加的用户发送电子邮件。除了 swift 邮件程序部分外,控制器中的一切工作正常。发送表单后,调试栏不会显示任何已发送的电子邮件。如果我把那部分放在 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('info@kampapp.com')
->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()));
}
如果您发送电子邮件然后立即重定向到另一个页面(您的情况),Web 调试工具栏将不会显示电子邮件图标或报告下一页。
相反,您可以在 config_dev.yml
文件中将 intercept_redirects
选项设置为 true
,这将导致重定向停止并允许您打开包含详细信息的报告已发送电子邮件。
# app/config/config_dev.yml
web_profiler:
intercept_redirects: true
在 documentation 中查看更多信息。