ストアのオーナーにメールで送信されるフォームがあります。特別なことは何もありません。入力フィールドと選択フィールドの束だけです。
これをメールに添付される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('eat@joes.com');
$mailTemplate->setTemplateSubject('Form Submission');
$attachment = $mailTemplate->getMail()->createAttachment($file);
$attachment->filename = 'file.csv';
$mailTemplate->send(
'store@owner.com',
Mage::getStoreConfig(self::XML_PATH_EMAIL_SENDER),
$post
);
}
}
これでファイル自体が作成されたので、temp.csvを問題なく開くことができ、想定どおりに表示されます。ただし、添付されているファイルが空であるか、(他のいくつかのことを試したときに)エンコーディングがすべて不安定になります...明らかに適切な形式ではありません。
ここで簡単なものが欠けているような気がします...誰かアドバイスがありますか?