2012-05-31 3 views
2

나는 상점 주인에게 이메일을 보내는 양식을 가지고 있습니다. 공상적인 것, 단지 많은 입력 필드와 선택 필드.Magento가 CSV로 게시물을 보내십시오

이메일에 첨부 된 CSV 파일로 변환하려고합니다.

public function postAction() { 
    $post = $this->getRequest()->getPost(); 
    if ($post) { 
     #Mage::log($post,null,'tmp.log'); 

     #not using this at the moment... 
     $postObject = new Varien_Object(); 
     $postObject->setData($post); 


     $file = fopen('temp/temp.csv','w+'); 

     foreach($post as $sections) { 
      fputcsv($file, $sections); 
     }; 

     fclose($file); 

     $mailTemplate = Mage::getModel('core/email_template')->loadDefault('training_email_template'); 
     $mailTemplate->setSenderName('Joe Schmoe'); 
     $mailTemplate->setSenderEmail('[email protected]'); 
     $mailTemplate->setTemplateSubject('Form Submission'); 
     $attachment = $mailTemplate->getMail()->createAttachment($file); 
     $attachment->filename = 'file.csv'; 

     $mailTemplate->send(
      '[email protected]', 
      Mage::getStoreConfig(self::XML_PATH_EMAIL_SENDER), 
      $post 
     ); 
    } 
} 

이제 파일 자체가 작성되는, 내가 잘 temp.csv 열 수 및이에 예상되는 것 같습니다 : 내 컨트롤러에서

, 나는있다. 그러나, 첨부 된 파일이 비어 있거나 (내가 다른 몇 가지 시도했을 때) 인코딩이 모든 유령이 될 것입니다 ... 분명히 적절한 형식이 아닙니다.

나는 여기에 간단한 것을 놓친 것처럼 느껴진다.

답변

4

매개 변수로 파일 리소스를 createAttachment()으로 보내고 있습니다. 문자열이어야합니다. 이 시도 :

$mailTemplate->getMail()->createAttachment(
    file_get_contents('temp/temp.csv'), 
    Zend_Mime::TYPE_OCTETSTREAM, 
    Zend_Mime::DISPOSITION_ATTACHMENT, 
    Zend_Mime::ENCODING_BASE64, 
    'file.csv' 
); 

여기 내가 그 기능에 대한 문서에 대한 모든 것을 찾고 있었다 Zend_Mail

/** 
* Creates a Zend_Mime_Part attachment 
* 
* Attachment is automatically added to the mail object after creation. The 
* attachment object is returned to allow for further manipulation. 
* 
* @param string   $body 
* @param string   $mimeType 
* @param string   $disposition 
* @param string   $encoding 
* @param string   $filename OPTIONAL A filename for the attachment 
* @return Zend_Mime_Part Newly created Zend_Mime_Part object (to allow 
* advanced settings) 
*/ 
public function createAttachment($body, 
           $mimeType = Zend_Mime::TYPE_OCTETSTREAM, 
           $disposition = Zend_Mime::DISPOSITION_ATTACHMENT, 
           $encoding = Zend_Mime::ENCODING_BASE64, 
           $filename = null) 
+0

에 대한 문서의 ... 오늘 구글을 실패합니다. 감사! – pspahn

관련 문제