Magento发送包含PDF附件的交易电子邮件

Lat*_*san 2 magento

我有以下代码,似乎是通过magento模型发送交易电子邮件(针对特定模板ID).

我无法让它工作的唯一一点是在交易电子邮件上附加PDF.

这是我到目前为止的代码:

function GetTransactionalSender() {
    return array(
        'name'  => Mage::getStoreConfig('trans_email/ident_support/name'),
        'email' => Mage::getStoreConfig('trans_email/ident_support/email')
    );
}

function SendTransactionalEmail($templateId, $recepientEmail, $recepientName, $vars, $storeId, $pdf_attachment = '') {
    $status = false;
    try {
        $transactionalEmail = Mage::getModel('core/email_template')
            ->setDesignConfig(array('area' => 'frontend', 'store' => $storeId));;
        if (!empty($pdf_attachment) && file_exists($pdf_attachment)) {
            $transactionalEmail
                ->getMail()
                ->createAttachment(file_get_contents($pdf_attachment), 'application/pdf')
                ->filename = basename($pdf_attachment);
        }
        $transactionalEmail
            ->sendTransactional($templateId, GetTransactionalSender(), $recepientEmail, $recepientName, $vars);
        $status = true;
    } catch (Exception $e) { }
    return $status;
}

$template_id = 1;
$to_email = 'user@domain.com';
$to_name = 'User Name';
$vars = array();
$store_id = 1
$pdf_file = '/full/path/to/my/file.pdf';
$sent = SendTransactionalEmail($template_id, $to_email, $to_name, $vars, $store_id, $pdf_file);
Run Code Online (Sandbox Code Playgroud)

发送电子邮件时,附件文件名称显示为:ATT00001.pdf,当您打开它时,它是一个空白页面.

知道我在这里做错了什么吗?您是否通过Magento模型将PDF附加到交易电子邮件中?

Lat*_*san 7

在这里找到我的问题的解决方案:https://stackoverflow.com/a/10837774/2332336

以下是为交易电子邮件添加附件的正确代码段:

if (!empty($pdf_attachment) && file_exists($pdf_attachment)) {
    $transactionalEmail
        ->getMail()
        ->createAttachment(
            file_get_contents($pdf_attachment),
            Zend_Mime::TYPE_OCTETSTREAM,
            Zend_Mime::DISPOSITION_ATTACHMENT,
            Zend_Mime::ENCODING_BASE64,
            basename($pdf_attachment)
        );
}
Run Code Online (Sandbox Code Playgroud)