【问题标题】:Symfony | Form | MailSymfony |表格 |邮件
【发布时间】:2017-08-17 05:45:42
【问题描述】:

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

我的控制器类看起来像:

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 变量应该是什么样子。

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

【问题讨论】:

    标签: php symfony email controller


    【解决方案1】:

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

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

    【讨论】:

    • 是的,这就是问题所在 :) 非常感谢 :)
    • @WojciechNowaczyk 很高兴我能帮上忙 :-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-03
    • 1970-01-01
    • 2014-08-10
    相关资源
    最近更新 更多