2016-07-11 3 views
0

저는 관리자 전용 양식이 있습니다. 관리자는 기본 비밀번호가 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())); 
    } 
+0

** 어떻게 되나요 **? –

+0

'정확히'발생합니다. 오류가 있습니까? –

+0

죄송합니다. 나는 또한 질문을 편집했다. 문제는 if 형식의 swiftmailer가 폼을 제출할 때 아무 일도 일어나지 않는다는 것입니다. 디버그 막대에 아무 것도 표시되지 않습니다. 그러나 if 문에서 swiftmailer를 제거하면 디버그 막대에 이메일이 표시됩니다. – mburakergenc

답변

1

이메일을 전송 한 후 즉시 (귀하의 경우입니다 ) 다른 페이지로 리디렉션하는 경우, 웹 디버그 도구 모음 이메일 아이콘 또는 다음 페이지에 대한 보고서를 표시하지 않습니다.

대신 config_dev.yml 파일의 옵션을 설정하면 리디렉션이 중지되고 보낸 이메일의 세부 정보로 보고서를 열 수 있습니다.

# app/config/config_dev.yml 
web_profiler: 
    intercept_redirects: true 

자세한 내용은 documentation을 참조하십시오.