2014-04-03 37 views
1

我會鏈接發送由TinyButStrong使用Swiftmailer生成的.odt文件。 這是當前畝代碼如何獲得TinyButStrong生成的文件處理程序

->setSubject('Customer General Email from '. $date->format("m-d-Y H:i")) 
      //->setTo($address) 
      ->setFrom('[email protected]') 
      ->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的文件。

那麼有什麼辦法可以獲得正確的文件處理程序,以便以後可以將它附加到我的電子郵件? 任何幫助表示讚賞。 謝謝

+0

你能成爲一個更具體一點請? *「我無法使用LibreOffice打開」*是什麼意思?你得到了什麼**錯誤**訊息?下載的文件是否包含'$ tbs-> show()'生成的內容? – nifr

+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('[email protected]') 
      ->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); 
相關問題