CodeIgniter - Enviando e-mail

Enviar email no CodeIgniter é muito mais fácil. Você também configura as preferências de e-mail no CodeIgniter. CodeIgniter fornece os seguintes recursos para enviar e-mails -

  • Vários protocolos - Mail, Sendmail e SMTP
  • Criptografia TLS e SSL para SMTP
  • Vários destinatários
  • CC e BCCs
  • HTML ou e-mail em texto simples
  • Attachments
  • Quebra automática de linha
  • Priorities
  • Modo de lote BCC, permitindo que grandes listas de e-mail sejam divididas em pequenos lotes BCC.
  • Ferramentas de depuração de e-mail

A classe Email possui as seguintes funções para simplificar o trabalho de envio de emails.

SN Sintaxe Parâmetros Retorna Tipo de Devolução
1 de ( $ from [, $ name = '' [, $ return_path = NULL ]])

$from( string ) - endereço de e-mail “De”

$name( string ) - nome de exibição “De”

$return_path( string ) - Endereço de e-mail opcional para o qual redirecionar o e-mail não entregue

Instância CI_Email (encadeamento de método) CI_Email
2 reply_to ( $ replyto [, $ name = '' ])

$replyto( string ) - endereço de e-mail para respostas

$name( string ) - Nome de exibição para o endereço de e-mail de resposta

Instância CI_Email (encadeamento de método) CI_Email
2 para ( $ para )

$to( misto ) - string delimitada por vírgulas ou uma matriz de endereços de e-mail

Instância CI_Email (encadeamento de método) CI_Email
3 cc ( $ cc )

$cc( misto ) - string delimitada por vírgulas ou uma matriz de endereços de e-mail

Instância CI_Email (encadeamento de método) CI_Email
4 bcc ( $ bcc [, $ limit = '' ])

$bcc( misto ) - string delimitada por vírgulas ou uma matriz de endereços de e-mail

$limit( int ) - Número máximo de e-mails para enviar por lote

Instância CI_Email (encadeamento de método) CI_Email
5 assunto ( $ assunto )

$subject( string ) - linha de assunto do e-mail

Instância CI_Email (encadeamento de método) CI_Email
6 mensagem ( $ body )

$body( string ) - corpo da mensagem de e-mail

Instância CI_Email (encadeamento de método) CI_Email
7 set_alt_message ( $ str )

$str( string ) - corpo da mensagem de e-mail alternativo

Instância CI_Email (encadeamento de método) CI_Email
8 set_header ( $ header, $ value )

$header( string ) - nome do cabeçalho

$value( string ) - valor do cabeçalho

Instância CI_Email (encadeamento de método) CI_Email
9 limpar ([ $ clear_attachments = FALSE ])

$clear_attachments( bool ) - se deve ou não limpar os anexos

Instância CI_Email (encadeamento de método) CI_Email
10 enviar ([ $ auto_clear = TRUE ])

$auto_clear( bool ) - se deseja limpar os dados da mensagem automaticamente

Instância CI_Email (encadeamento de método) CI_Email
11 anexar ($ filename [, $ disposition = '' [, $ newname = NULL [, $ mime = '']]])

$filename( string ) - Nome do arquivo

$disposition( string ) - 'disposição' do anexo. A maioria dos clientes de email toma suas próprias decisões, independentemente da especificação MIME usada aqui. iana

$newname( string ) - Nome do arquivo personalizado para usar no e-mail

$mime( string ) - tipo MIME a ser usado (útil para dados em buffer)

Instância CI_Email (encadeamento de método) CI_Email
12 attach_cid ( $ filename )

$filename( string ) - Nome de arquivo de anexo existente

Anexo Content-ID ou FALSE se não encontrado corda

Enviando um Email

Para enviar um e-mail usando o CodeIgniter, primeiro você deve carregar a biblioteca de e-mail usando o seguinte -

$this->load->library('email');

Após carregar a biblioteca, basta executar as seguintes funções para definir os elementos necessários para enviar um e-mail. ofrom() função é usada para definir - de onde o e-mail está sendo enviado e to()função é usada - para quem o e-mail está sendo enviado. osubject() e message() função é usada para definir o assunto e a mensagem do e-mail.

$this->email->from('[email protected]', 'Your Name');
$this->email->to('[email protected]');
 
$this->email->subject('Email Test');
$this->email->message('Testing the email class.');

Depois disso, execute o send() função conforme mostrado abaixo para enviar um e-mail.

$this->email->send();

Exemplo

Crie um arquivo de controlador Email_controller.php e salve em application/controller/Email_controller.php.

<?php 
   class Email_controller extends CI_Controller { 
 
      function __construct() { 
         parent::__construct(); 
         $this->load->library('session'); 
         $this->load->helper('form'); 
      } 
		
      public function index() { 
	
         $this->load->helper('form'); 
         $this->load->view('email_form'); 
      } 
  
      public function send_mail() { 
         $from_email = "[email protected]"; 
         $to_email = $this->input->post('email'); 
   
         //Load email library 
         $this->load->library('email'); 
   
         $this->email->from($from_email, 'Your Name'); 
         $this->email->to($to_email);
         $this->email->subject('Email Test'); 
         $this->email->message('Testing the email class.'); 
   
         //Send mail 
         if($this->email->send()) 
         $this->session->set_flashdata("email_sent","Email sent successfully."); 
         else 
         $this->session->set_flashdata("email_sent","Error in sending Email."); 
         $this->load->view('email_form'); 
      } 
   } 
?>

Crie um arquivo de visualização chamado email_form.php e salve em application/views/email_form.php

<!DOCTYPE html> 
<html lang = "en"> 

   <head> 
      <meta charset = "utf-8"> 
      <title>CodeIgniter Email Example</title> 
   </head>
	
   <body> 
      <?php 
         echo $this->session->flashdata('email_sent'); 
         echo form_open('/Email_controller/send_mail'); 
      ?> 
		
      <input type = "email" name = "email" required /> 
      <input type = "submit" value = "SEND MAIL"> 
		
      <?php 
         echo form_close(); 
      ?> 
   </body>
	
</html>

Faça as alterações no routes.php arquivo em application/config/routes.php e adicione a seguinte linha no final do arquivo.

$route['email'] = 'Email_Controller';

Execute o exemplo acima visitando o seguinte link. Substitua o yoursite.com pelo URL do seu site.

http://yoursite.com/index.php/email