magento联系电子邮件附件,未收到附件

时间:2015-05-29 06:13:07

标签: php xml email magento

我正在尝试创建一个允许客户附加文件的magento模块联系页面。我按照magephsycho的本教程创建了自己的模块但是我收到了空白电子邮件。在google上搜索时,我发现了这个stackexchange question并修改了IndexController.php。我现在收到包含内容但没有附件的电子邮件。

我是magento的新手,我不知道出了什么问题。

这是我的HTML代码:

<form action="<?php echo $this->getFormAction(); ?>" id="contactForm" method="post" enctype="multipart/form-data">

<input name="MAX_FILE_SIZE" type="hidden" value="2000000" />
<input name="fileattachment" id="fileattachment" title="<?php echo Mage::helper('contacts')->__('FileAttachment') ?>" placeholder="<?php echo Mage::helper('contacts')->__('Upload File') ?>" value="fileattachment" class="input-text" type="file" />

这是我的app.xml保存在app / code / local / Attachment / Eattachment / etc

<?xml version="1.0"?>
<config>
    <frontend>
        <routers>
            <contacts>
                <args>
                    <modules>
                        <Attachment_Eattachment before="Mage_Contacts">Attachment_Eattachment</Attachment_Eattachment>
                    </modules>
                </args>
            </contacts>
        </routers>
    </frontend>
</config>

这是我在IndexController.php中替换的代码,该代码保存在app / code / local / Attachment / Eattachment / controllers

if(file_exists($attachmentFilePath)){
    mailTemplate->getMail()->createAttachment(
        file_get_contents($attachmentFilePath),
        Zend_Mime::TYPE_OCTETSTREAM,
        Zend_Mime::DISPOSITION_ATTACHMENT,
        Zend_Mime::ENCODING_BASE64,
        $fileName
    );
}

最后,这是config.xml,它将模块引入保存在app / etc / modules

上的magento
<?xml version="1.0"?>
<config>
    <modules>
        <Attachment_Eattachment>
            <active>true</active>
            <codePool>local</codePool>
        </Attachment_Eattachment>
    </modules>
</config>

更新:这是管理员交易电子邮件中的代码

Name: {{var data.name}}
Email: {{var data.email}}
Telephone: {{var data.telephone}}
PollQuestions: {{var data.pollquestions}}
OtherSpecify: {{var data.othersSpecify}}
FileAttachment: {{var data.fileattachment}}
Comment: {{var data.comment}}

我希望我提供了有用的信息。截至目前,我不知道发生了什么。我不确定是否将文件保存在正确的位置。

我的问题是我没有收到联系我们页面发送的任何电子邮件附件。

谢谢!

1 个答案:

答案 0 :(得分:0)

我发布这个问题已经过去了一个月。在我解决这个问题之前,我会转到项目的其他阶段。

我从我安装的contact us扩展程序中发现了问题。

要解决此问题,我卸载了扩展程序并修改了我的代码

MODIFICATION:

  1. 无需在“交易电子邮件”页面中包含输入字段。这是修改后的代码。

    姓名:{{var data.name}} 电子邮件:{{var data.email}} 电话:{{var data.telephone}} 民意调查问题:{{var data.pollquestions}} 其他说明:{{var data.othersSpecify}} 评论:{{var data.comment}}

  2. 我将上面的控制器代码替换为此

    如果(file_exists($ attachmentFilePath)){                     $ fileContents = file_get_contents($ attachmentFilePath);

                    $attachment   = $mailTemplate->getMail()->createAttachment($fileContents);
    
                    $attachment->filename = $fileName;
                }
    
  3. 代码有效,我现在可以收到电子邮件附件。

    希望这有助于其他人。