我已经使用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;}
}
}
?>