无法使用codeigniter中的弹性电子邮件API发送带附件的电子邮件

时间:2017-09-13 19:59:33

标签: php codeigniter email email-attachments email-integration

我已经使用TCPDF生成PDF,这工作正常。我试图发送电子邮件,其中包含作为电子邮件附件生成的PDF。发送的电子邮件没有附件。请帮助更正以下代码,以确保通过电子邮件发送附件。

payment.php

$attachment =  $pdf->Output('example_001.pdf', 'D');
$attachment = base64_encode($attachment);

$attachmentlink = 'http://localhost/cfac/resources/invoices/example_001.pdf';

$inputdata['firstname']="abc";
$inputdata['ename']="Event Name";
$inputdata['tno']="tno:232423";
$inputdata['amount']="10000rs";
$inputdata['edetails']="EDetails";
$inputdata['startdate']="Start Date";
$inputdata['enddate']="End Date";
$template='xyz';

$emailid="xxx@gmail.com";
// email helper to send email
$this->load->helper ('email');

        $filename = "example_001.pdf";
        $file_name_with_full_path = base_url()."resources/inv/example_001.pdf";
        $filetype = "application/pdf";

        $attachmentFiles = array('http://localhost/cfac/resources/inv/example_001.pdf');


        send_email($emailid,$inputdata,$template, $attachmentFiles );

emailhelper.php

已使用配置文件中的值设置了emailconfig deatils。

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');


if ( ! function_exists('send_email'))
{

function send_email($emailid,$inputdata,$template,$attachmentFiles )
{

    $CI =& get_instance();
    $CI->load->config('emailcofnig');
    //$ci->email->attach( 'http://localhost/cfac/resources/inv/example_001.pdf');

    $emailconfig=$CI->config->item('elasticemail');

    $url=$emailconfig['url'];

    $filename = "example_001.pdf";
    $file_name_with_full_path = "http://localhost/cfac/resources/invoices/example_001.pdf";
    $filetype = "application/pdf";


    $email = array(
        'from' => $emailconfig['fromemailid'],
        'fromName' => $emailconfig['from'],
        'apikey' => $emailconfig['apikey'],
        'subject' => $emailconfig['defaultsubject'],
        'to' => $emailid,
        'isTransactional' => true,
        'template' => $templatename,
        'file_1' => new CurlFile($file_name_with_full_path, $filetype, $filename)
        );

        foreach($inputdata as $key => $value)
        {
            $email['merge_'.$key] = $value;
        }



    // use key 'http' even if you send the request to https://...
    $options = array(
        'http' => array(
            'header'  => "Content-type: application/x-www-form-urlencoded\r\n",
            'method'  => 'POST',
            'content' => http_build_query($email)
        )
    );

    $context  = stream_context_create($options);
    $result = file_get_contents($url, false, $context);
    if ($result === FALSE) { /* Handle error */ return 0;}

    }
}

?>

0 个答案:

没有答案