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