如何获取TinyButStrong生成的文件处理程序

时间:2014-04-03 16:16:17

标签: symfony swiftmailer opentbs tinybutstrong

我会链接到使用Swiftmailer发送由TinyButStrong生成的.odt文件。 这是mu current code

->setSubject('Customer General Email from '. $date->format("m-d-Y H:i"))
            //->setTo($address)
            ->setFrom('avangardauto33@gmail.com')
            ->attach(
                \Swift_Attachment::newInstance()
                    ->setFilename('space_calculator_results.odt')
                    ->setContentType('application/odt')
                    //->setBody($TBS->Show(OPENTBS_DOWNLOAD, 'space_calc_results.odt'))
                    ->setBody($TBS->Show())
            )
            ->setBody($this->renderView(
                'WinslowUserBundle:User:calc_results_email.html.twig',
                array('data' => $data)), 'text/html');
        $this->get('mailer')->send($message);

我已经附加了文件,但我无法使用LibreOffice打开文件。

那么有没有办法让正确的文件处理程序能够以后将它附加到我的电子邮件中? 任何帮助表示赞赏。 感谢

1 个答案:

答案 0 :(得分:3)

方法TBS->Show()不返回合并的二进制结果。

根据manual,您必须执行此操作才能检索二进制内容:

$TBS->Show(OPENTBS_STRING);
$string = $TBS->Source; 

所以你的代码可能是这样的:

$TBS->Show(OPENTBS_STRING);

->setSubject('Customer General Email from '. $date->format("m-d-Y H:i"))
            ->setFrom('avangardauto33@gmail.com')
            ->attach(
                \Swift_Attachment::newInstance()
                    ->setFilename('space_calculator_results.odt')
                    ->setContentType('application/odt')
                    ->setBody($TBS->Source)
            )
            ->setBody($this->renderView(
                'WinslowUserBundle:User:calc_results_email.html.twig',
                array('data' => $data)), 'text/html');
        $this->get('mailer')->send($message);