template example enviar correo html email codeigniter

html - example - smtp codeigniter



enviar correo html utilizando codeigniter (10)

Error en el contenido del correo usando SMTP en codeigniter En realidad, mi correo se envía con etiquetas HTML y muestra las etiquetas HTML que no son correctas.

$config = Array( ''protocol'' => ''smtp'', ''smtp_host'' => ''ssl://smtp.googlemail.com'', ''smtp_port'' => 465, ''smtp_user'' => ''[email protected]'', ''smtp_pass'' => '''', ''mailtype'' => ''html'', ''charset'' => ''utf-8'', ''wordwrap'' => TRUE ); $this->load->library(''email'', $config); $this->email->set_newline("/r/n"); $email_body ="<div>hello world</div>"; $this->email->from(''[email protected]'', ''ddd''); $list = array(''[email protected]''); $this->email->to($list); $this->email->subject(''Testing Email''); $this->email->message($email_body); $this->email->send(); echo $this->email->print_debugger();

Si estoy enviando correo sin usar SMTP funciona bien. Cual es mi error


Úsalo así ... funciona muy bien para mí.

$this->load->library(''email''); $config[''charset''] = ''iso-8859-1''; $config[''wordwrap''] = TRUE; $config[''mailtype''] = ''html''; $this->email->initialize($config); $this->email->from($fromemail); $this->email->to($toemail); $this->email->subject(''Subject''); $this->email->message($html); $success=$this->email->send();


¡U lo intentarás! está trabajando para la mía después de mostrar muchos errores, está funcionando al 100%.

$subject = ''New message.''; $config = Array( ''protocol'' => ''sendmail'', ''smtp_host'' => ''Your smtp host'', ''smtp_port'' => 465, ''smtp_user'' => ''webmail'', ''smtp_pass'' => ''webmail pass'', ''smtp_timeout'' => ''4'', ''mailtype'' => ''html'', ''charset'' => ''utf-8'', ''wordwrap'' => TRUE ); $this->load->library(''email'', $config); $this->email->set_newline("/r/n"); $this->email->set_header(''MIME-Version'', ''1.0; charset=utf-8''); $this->email->set_header(''Content-type'', ''text/html''); $this->email->from(''from mail address'', ''Company name ''); $data = array( ''message''=> $this->input->post(''message'') ); $this->email->to($toEmail); $this->email->subject($subject); $body = $this->load->view(''email/sendmail.php'',$data,TRUE); $this->email->message($body); $this->email->send();


¿Puede por favor intentar con este código, B''z puedo enviar un correo electrónico HTML con este código?

$configemail = Array( ''protocol'' => ''smtp'', ''smtp_host'' => ''ssl://smtp.gmail.com'', //mail.webconsort.com ''smtp_port'' => 465, //5074 ''smtp_user'' => ''[email protected]'', //[email protected] ''smtp_pass'' => ''XXXXXXXX'', //''T0r0r1d3'' ''mailtype'' => ''html'', ''charset'' => ''iso-8859-1'' ); $CI =& get_instance(); $CI->load->library(''email'', $configemail); $CI->email->initialize($configemail); $CI->email->set_newline("/r/n"); $CI->email->from($from, $fromName); $CI->email->to($to); $CI->email->subject($subject); $CI->email->message($body); if ($attachments != null && !empty($attachments)){ foreach($attachments as $a){ $CI->email->attach($a); } } try{ $CI->email->send(); return true; } catch (Exception $e){ //var_dump($e); }


A partir de CodeIgniter 3.x. Hay muchas características añadidas. Este ejemplo es casi igual con las versiones anteriores, pero puede hacer mucho más.

Siga el enlace para la documentación.

// load email library $this->load->library(''email''); // prepare email $this->email ->from(''[email protected]'', ''Example Inc.'') ->to(''[email protected]'') ->subject(''Hello from Example Inc.'') ->message(''Hello, We are <strong>Example Inc.</strong>'') ->set_mailtype(''html''); // send email $this->email->send();

Si tienes plantilla de diseño. También puede incluir una plantilla en el método de message como este ...

->message($this->load->view(''email_template'', $data, true))

Aquí, el primer parámetro es email_template.php en su directorio de vistas, segundo parámetro los datos que se enviarán a la plantilla de correo electrónico, puede configurarlo '''' o array() o [] si no pasa ningún dato dinámico y el último parámetro es true , usted toma los datos de la plantilla en lugar de la salida.

Espero que esto sea de ayuda.


Configurar el tipo de correo a HTML funciona para mí:

$email_setting = array(''mailtype''=>''html''); $this->email->initialize($email_setting);


Gmail impide el acceso a tu cuenta. Necesitas algunos cambios en tu gmail: -

Paso 1

Algunas aplicaciones y dispositivos utilizan una tecnología de inicio de sesión menos segura, lo que hace que su cuenta sea más vulnerable. Puede desactivar el acceso a estas aplicaciones, que recomendamos, o activar el acceso si desea usarlas a pesar de los riesgos.

Activar la aplicación menos segura

Paso 2

Habilitar estado IMAP
Habilitar estado POP

Habilitar estado IMAP y POP


Intente configurar manualmente el encabezado de tipo de contenido haciendo esto:

$this->email->set_header(''Content-Type'', ''text/html'');

Eso resuelve el problema para mí.


Mi problema era que el filtrado XSS global de Codeigniter estaba codificando algunas etiquetas html como <html> para que los clientes de correo electrónico ya no pudieran reconocerlas.

Para evitar esto, echa un vistazo a mi otro post .


Para enviar un correo electrónico HTML, primero debe redactar su mensaje en una variable y luego pasar esa variable al método "$ this-> email-> message ()" de codeigniter, como a continuación,

$this->load->library(''email''); $message = " <html> <head> <title>your title</title> </head> <body> <p>Hello Sir,</p> <p>Your message</p> </body> </html>"; $this->email->from(''email id'', ''name''); $this->email->to(''email id''); $this->email->subject(''email subject''); $this->email->message($message); if ($this->email->send()) { print "success"; } else { print "Could not send email, please try again later"; }

Espero que ayude.

¡¡disfrutar!!


Puede probar esta línea de código que establecerá el tipo de correo como HTML :

$this->email->set_mailtype("html");