Codeigniter send email with attach file Codeigniter send email with attach file codeigniter codeigniter

Codeigniter send email with attach file


$this->email->attach()

Enables you to send an attachment. Put the file path/name in the first parameter. Note: Use a file path, not a URL. For multiple attachments use the function multiple times. For example:

public function setemail(){$email="xyz@gmail.com";$subject="some text";$message="some text";$this->sendEmail($email,$subject,$message);}public function sendEmail($email,$subject,$message)    {    $config = Array(      'protocol' => 'smtp',      'smtp_host' => 'ssl://smtp.googlemail.com',      'smtp_port' => 465,      'smtp_user' => 'abc@gmail.com',       'smtp_pass' => 'passwrd',       'mailtype' => 'html',      'charset' => 'iso-8859-1',      'wordwrap' => TRUE    );          $this->load->library('email', $config);          $this->email->set_newline("\r\n");          $this->email->from('abc@gmail.com');          $this->email->to($email);          $this->email->subject($subject);          $this->email->message($message);            $this->email->attach('C:\Users\xyz\Desktop\images\abc.png');          if($this->email->send())         {          echo 'Email send.';         }         else        {         show_error($this->email->print_debugger());        }    }


i have this problem before , the problem with the path file , so i change the path file to


$attched_file= $_SERVER["DOCUMENT_ROOT"]."/uploads/".$file_name;$this->email->attach($attched_file);


And it works fine with me


With Codeigniter 3.1.0 I had same problem. Seems that there is missing a "\r\n":

Content-Type: application/pdf; name="test.pdf"<br>Content-Disposition: attachment;<br>Content-Transfer-Encoding: base64<br>JVBERi0xLjYNJeLjz9MNCjQzNyAwIG9iag08PC9MaW5lYXJpemVkIDEvTCA3OTUyMTYvTyA0Mzkv<br>RSA2ODEwODcvTiA0L1QgNzk0ODA3L0ggWyA1NjQgMjYxXT4+DWVuZG9iag0gICAgICAgICAgICAg<br>

should be:

Content-Type: application/pdf; name="test.pdf"<br>Content-Disposition: attachment;<br>Content-Transfer-Encoding: base64<br><br>JVBERi0xLjYNJeLjz9MNCjQzNyAwIG9iag08PC9MaW5lYXJpemVkIDEvTCA3OTUyMTYvTyA0Mzkv<br>RSA2ODEwODcvTiA0L1QgNzk0ODA3L0ggWyA1NjQgMjYxXT4+DWVuZG9iag0gICAgICAgICAgICAg<br>

I changed line 725 in system/libraries/Email from

 'content'       => chunk_split(base64_encode($file_content)),<br>

to

'content'       => "\r\n" . chunk_split(base64_encode($file_content)),<br>

It works for me, but not the perfect fix.