Saltar al contenido

Codeigniter envía un correo electrónico con un archivo adjunto

Este artículo ha sido evaluado por expertos así garantizamos la exactitud de nuestro post.

Solución:

$este->correo->adjuntar()

Le permite enviar un archivo adjunto. Ponga la ruta/nombre del archivo en el primer parámetro. Nota: Utilice una ruta de archivo, no una URL. Para archivos adjuntos múltiples, use la función varias veces. Por ejemplo:

public function setemail()

$email="[email protected]";
$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' => '[email protected]', 
      'smtp_pass' => 'passwrd', 
      'mailtype' => 'html',
      'charset' => 'iso-8859-1',
      'wordwrap' => TRUE
    );


          $this->load->library('email', $config);
          $this->email->set_newline("rn");
          $this->email->from('[email protected]');
          $this->email->to($email);
          $this->email->subject($subject);
          $this->email->message($message);
            $this->email->attach('C:UsersxyzDesktopimagesabc.png');
          if($this->email->send())
         
          echo 'Email send.';
         
         else
        
         show_error($this->email->print_debugger());
        

    

tengo este problema antes, el problema con el archivo de ruta, así que cambio el archivo de ruta a


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


Y funciona bien conmigo

Con Codeigniter 3.1.0 tuve el mismo problema. Parece que falta un “rn”:

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

debiera ser:

Content-Type: application/pdf; name="test.pdf"
Content-Disposition: attachment;
Content-Transfer-Encoding: base64

JVBERi0xLjYNJeLjz9MNCjQzNyAwIG9iag08PC9MaW5lYXJpemVkIDEvTCA3OTUyMTYvTyA0Mzkv
RSA2ODEwODcvTiA0L1QgNzk0ODA3L0ggWyA1NjQgMjYxXT4+DWVuZG9iag0gICAgICAgICAgICAg

Cambié la línea 725 en system/libraries/Email from

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

a

'content'       => "rn" . chunk_split(base64_encode($file_content)),

Funciona para mí, pero no es la solución perfecta.

Si para ti ha resultado de provecho nuestro artículo, te agradeceríamos que lo compartas con el resto programadores de esta manera nos ayudas a difundir nuestra información.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *