Symfony |表格|邮件

时间:2017-08-16 20:26:52

标签: php symfony email controller

我遇到了Symfony的问题,希望你能帮助我:) 我创建了一个表单,它从用户(电子邮件,名称,消息)获取数据,然后将数据保存在数据库中。一切正常,但我也想发送包含这些数据的电子邮件。 我想使用邮件功能mail(to,subject,message,headers,parameters);

我的Controller类看起来像:

public function ContactFormAction(Request $request){
   $post = new ContactForm();
   $form = $this->createFormBuilder($post)
               ->setMethod('POST')
               ->add('email','text',['label' => 'Adres e-mail'])
               ->add('name','text', ['label' => 'Imię'])
               ->add('message','text', ['label' => 'Wiadomość'])
               ->add('save','submit', ['label' => 'Wyślij'])
               ->getForm();



   $form->handleRequest($request);
       if ($form->isSubmitted()) {
       $post = $form->getData();
       $em = $this->getDoctrine()->getManager();
       $em->persist($post);
       $em->flush();
       $message=''; //thats my problem
       mail('example@example.pl', 'Subject', $message);

       return $this->redirectToRoute('onas');
     }

  return $this->render('default/aboutus.html.twig', ['form' => $form->createView()]);
 }

我的问题是:如果我想从用户(从我的网页上的表单)获取此数据,$ message变量应如何显示。

非常感谢您的所有答案:)

1 个答案:

答案 0 :(得分:0)

不确定我是否关注,但是,您想要使用用户的输入发送纯文本,只需执行$message = $post->getMessage();并将其传递给mail。这是问题吗?

默认情况下,电子邮件是以text/plain编码发送的,因此您将无法使用HTML。就个人而言,我更喜欢将它格式化得比旧纯文本好一点。为此,我通常会创建一个Twig模板,将输入数据传递给它并呈现我需要的内容。该模板可能包含一些HTML,可以增强电子邮件的视觉效果。