无法使用SwiftMailer和Symfony3发送附件文件

时间:2016-05-05 14:02:34

标签: php swiftmailer symfony

霍洛, 我尝试使用 SwiftMailer 发送带有 symfony3 的邮件。当我不包含附件时,一切都像魅力一样。 当我尝试附加文件时,不会发送电子邮件,也不会生成错误。 我不知道是否由于文件路径错误而导致该文件正确位于Symfony web 目录的/ doc / temp目录中。

我的源代码如下:

            $message =  \Swift_Message::newInstance()
                ->setSubject("Subject")
                ->setFrom("from@gmail.com")
                ->setTo("to@gmail.com")
            ;

            $message->setBody($this->renderView(
                'xxxx.email.twig'
            ), "text/html");

            $message->attach(\Swift_Attachment::fromPath('/doc/temp/file.pdf'));

            $this->get('mailer')->send($message);

感谢您的帮助,对不起,如果我有一些错误,英语不是我的主要语言。

1 个答案:

答案 0 :(得分:1)

我解决了我的问题。它是由文件路径引起的。文件路径必须是绝对的。 bellow是正确的代码:

        $message =  \Swift_Message::newInstance()
            ->setSubject("Subject")
            ->setFrom("from@gmail.com")
            ->setTo("to@gmail.com")
        ;

        $message->setBody($this->renderView(
            'xxxx.email.twig'
        ), "text/html");

        $message->attach(\Swift_Attachment::fromPath($this->get('kernel')->getRootDir()."/../web/doc/temp/file.pdf"));

        $this->get('mailer')->send($message);