2

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

有我的邮件功能:

 private function sendMail(MailerInterface $mailer, $p_leTI, $mail)
          {
             $pole = $p_leTI['pole'];
             $type = $pole === 1 ? 'Logiciel' : ($pole === 2 ? 'Matériel' : 'Incident');
             $client = $p_leTI['nomCli'];
             $email = (new Email())
                 ->from(new Address('random@gmail.com', 'Support Idéation Informatique'))
                 ->to(new Address('random@gmail.com'))
                 ->bcc(new Address('random@gmail.com'))
                 ->subject("Ticket $type Site: $client")
                 ->text("Client: $client\r\nObservation: {$p_leTI['OBSERVATION']}")
                 ->html("<html lang='fr'>
                     <body>
                         <p>Demandeur: {$p_leTI['nomCli']}</p>
                         <p>Description: {$p_leTI['OBSERVATION']}</p>
                         <p>Téléphone: {$p_leTI['TEL']}</p>
                         <p>Email: {$p_leTI['EMAILCLIENT']}</p>
                     </body>
                 </html>");
             $mailer->send($email);

             $email = (new TemplatedEmail())
                 ->from(new Address('random@gmail.com', 'Support Idéation Informatique'))
                 ->bcc(new Address('random@gmail.com'))
                 ->subject("Idéation Informatique - Votre demande a bien été enregistrée (Ticket n°" . $$p_leTI['IDTICKETINCIDENT'] . ")");
             if (!empty($mail))
                 try {
                     $email->to(new Address($mail));
                 } catch (Exception $e) {
                     
                 }


             $email->htmlTemplate('emails/mail.html.twig')
                 ->context([
                     'client' => $client,
                     'idticket' => $p_leTI['IDTICKETINCIDENT'],
                     'observation' => $p_leTI['OBSERVATION']
                 ])
                 ->text("Ouverture du ticket incident n°" . $p_leTI['IDTICKETINCIDENT'] . "\r\n" . $p_leTI['OBSERVATION']);

             $mailer->send($email);
             return true;
          }

我的日志中有错误:

PHP Exception Symfony\Component\DependencyInjection\Exception\EnvNotFoundException: "Environment variable not found: "MAILER_DSN"."dency-injection/EnvVarProcessor.php

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

谢谢你的帮助。

4

1 回答 1

4

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

记录在案的最简单的方法是使用以下内容更新.env文件:

MAILER_DSN=smtp://user:pass@smtp.example.com:port

评论:EnvVarProcessor.php只是一个组件,用于根据设置它们的不同选项在 Symfony 容器中设置环境变量。

于 2020-07-10T07:34:23.063 回答