I want to send an email with csv attachment which comes from MySQL result. My code was directly downloading the file when I call the URL. But no attachment was included in the email. I want to send as an attachment in an email.
public function retrieveEmail($s){
//print_r($s);
$config = Array(
'protocol' => 'smtp',
'smtp_host' => getenv('SMTP_HOST_'.getenv('ENV_TYPE')),
'smtp_port' => getenv('SMTP_PORT_'.getenv('ENV_TYPE')),
'smtp_user' => getenv('SMTP_USER_'.getenv('ENV_TYPE')),
'smtp_pass' => getenv('SMTP_PASS_'.getenv('ENV_TYPE')),
'smtp_timeout' => 5,
'mailtype' => 'html',
'charset' => 'iso-8859-1',
'wordwrap' => TRUE,
'newline' => "\r\n"
);
$this->load->library('email', $config);
//echo "Hi";
$this->email->initialize($config);
$this->email->set_newline("\r\n");
$subject = "Serials blocked report";
$econtent = "Testing purpose only";
$filename = "serialblockingreport_".date('Y-m-d').".csv";
header("Content-type: text/csv");
header("Content-Disposition: attachment; filename=" . $filename);
header("Pragma: no-cache");
header("Expires: 0");
$file = fopen("php://output","r");
$header = array("id","serial","itemname","expire_date","isactive","blockedat");
fputcsv($file, $header);
foreach ($s as $key=>$line){
fputcsv($file,$line);
}
// force_download($file, $header);
//fclose($file);
//exit;
//print_r($s);
//print_r($r);
$this->email->from(getenv('SMTP_FROM_'.getenv('ENV_TYPE')), 'Serial Block Statement');
$this->email->to('pacepdtpro@gmail.com');
$this->email->bcc('pacepdtpro1@gmail.com');
$this->email->subject($subject);
$this->email->message($econtent);
$this->email->attach($file);
if($this->email->send()) {
} else {
show_error($this->email->print_debugger());
}
}