symfony 邮件程序的 PHP 异常

Neo*_*erd 3 php symfony symfony-mailer

我是 Symfony 的初学者,我必须在我的网络服务中放置一个 Mailer。但我有一个我不明白的 php 异常。

\n

有我的邮件功能:

\n
 private function sendMail(MailerInterface $mailer, $p_leTI, $mail)\n          {\n             $pole = $p_leTI['pole'];\n             $type = $pole === 1 ? 'Logiciel' : ($pole === 2 ? 'Mat\xc3\xa9riel' : 'Incident');\n             $client = $p_leTI['nomCli'];\n             $email = (new Email())\n                 ->from(new Address('random@gmail.com', 'Support Id\xc3\xa9ation Informatique'))\n                 ->to(new Address('random@gmail.com'))\n                 ->bcc(new Address('random@gmail.com'))\n                 ->subject("Ticket $type Site: $client")\n                 ->text("Client: $client\\r\\nObservation: {$p_leTI['OBSERVATION']}")\n                 ->html("<html lang='fr'>\n                     <body>\n                         <p>Demandeur: {$p_leTI['nomCli']}</p>\n                         <p>Description: {$p_leTI['OBSERVATION']}</p>\n                         <p>T\xc3\xa9l\xc3\xa9phone: {$p_leTI['TEL']}</p>\n                         <p>Email: {$p_leTI['EMAILCLIENT']}</p>\n                     </body>\n                 </html>");\n             $mailer->send($email);\n\n             $email = (new TemplatedEmail())\n                 ->from(new Address('random@gmail.com', 'Support Id\xc3\xa9ation Informatique'))\n                 ->bcc(new Address('random@gmail.com'))\n                 ->subject("Id\xc3\xa9ation Informatique - Votre demande a bien \xc3\xa9t\xc3\xa9 enregistr\xc3\xa9e (Ticket n\xc2\xb0" . $$p_leTI['IDTICKETINCIDENT'] . ")");\n             if (!empty($mail))\n                 try {\n                     $email->to(new Address($mail));\n                 } catch (Exception $e) {\n                     \n                 }\n\n\n             $email->htmlTemplate('emails/mail.html.twig')\n                 ->context([\n                     'client' => $client,\n                     'idticket' => $p_leTI['IDTICKETINCIDENT'],\n                     'observation' => $p_leTI['OBSERVATION']\n                 ])\n                 ->text("Ouverture du ticket incident n\xc2\xb0" . $p_leTI['IDTICKETINCIDENT'] . "\\r\\n" . $p_leTI['OBSERVATION']);\n\n             $mailer->send($email);\n             return true;\n          }\n
Run Code Online (Sandbox Code Playgroud)\n

我的日志中有错误:

\n
PHP Exception Symfony\\Component\\DependencyInjection\\Exception\\EnvNotFoundException: "Environment variable not found: "MAILER_DSN"."dency-injection/EnvVarProcessor.php\n
Run Code Online (Sandbox Code Playgroud)\n

EnvVarProcessor.php 是一个我从未使用过的文件,所以我不明白,就像我说我是初学者所以我可能忘记了一些东西。

\n

谢谢你的帮助。

\n

LBA*_*LBA 5

您必须通过环境变量设置如何发送邮件的参数(有很多选项,但有一些常见的方法)。

据记录,最简单的方法是使用以下命令更新.env文件:

MAILER_DSN=smtp://user:pass@smtp.example.com:port
Run Code Online (Sandbox Code Playgroud)

注释:EnvVarProcessor.php只是根据必须设置的不同选项在 Symfony 容器中设置环境变量的组件。

  • 请注意,如果您使用一些真实的凭据,则需要将其写入“.env.local”而不是“.env”中,这样​​就不会提交它。 (4认同)
  • 如果示例中的密码中有特殊字符,则可能需要首先对 URL 进行 URL 编码(例如“@”变为“%40”) (3认同)