动态附件mandrill

时间:2016-10-25 08:55:09

标签: php mailchimp mandrill

我是mandrill的新手,只是想知道我可以使用mandrill创建模板,我可以作为附件发送给收件人。例如,如果我想发送带有动态内容的可下载活动票据。我正在考虑将事件票据设计为mandrill中的模板。

我的代码:

$template_name = 'eventTicket';
$template_content = array(
    array(
        'name' => 'example name',
        'content' => 'example content'
         )
);

1 个答案:

答案 0 :(得分:0)

您可以使用渲染返回HTML结果,然后使用像tcpdf这样的库将html转换为pdf,然后将其作为附件发送

<?php
try {
$mandrill = new Mandrill('YOUR_API_KEY');
$template_name = 'Example Template';
$template_content = array(
    array(
        'name' => 'editable',
        'content' => '<div>content to inject *|MERGE1|*</div>'
    )
);
$merge_vars = array(
    array(
        'name' => 'merge1',
        'content' => 'merge1 content'
    )
);
$result = $mandrill->templates->render($template_name, $template_content, $merge_vars);
print_r($result);

// create new PDF document
        $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
        // set font
        $pdf->SetFont('helvetica', '', 10);
        // set image scale factor
        $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);

        // add a page
        $pdf->AddPage();
        // output the HTML content
        $pdf->writeHTML($result['html'], true, false, true, false, '');
        $file_name = 'filename.pdf';
        $path = $your_upload_path.$file_name;
        $pdf->Output($path,'F');


/*
Array
(
    [html] => content to inject merge1 content
)
*/
} catch(Mandrill_Error $e) {
// Mandrill errors are thrown as exceptions
echo 'A mandrill error occurred: ' . get_class($e) . ' - ' . $e->getMessage();
// A mandrill error occurred: Mandrill_Invalid_Key - Invalid API key
 throw $e;
}
?>