FuelPHP - Gerenciamento de e-mail

A funcionalidade de e-mail é o recurso mais solicitado em uma estrutura da web. O FuelPHP fornece uma classe de e-mail elegante agrupada como um pacote. É usado para enviar e-mail de texto simples simples, bem como e-mail de texto avançado avançado com vários anexos. Ele suporta os seguintes recursos - e-mails em texto simples, e-mails em HTML, anexos e anexos inline.

Configuração

Para habilitar a funcionalidade de e-mail no aplicativo, precisamos apenas carregar o pacote de e-mail conforme especificado abaixo no arquivo de configuração principal, fuel / app / config / config.php.

'always_load' => array ( 
   'packages' => array ( 
      'email', 
   ), 
),

Outra opção é carregar o pacote de e-mail, o próprio controlador da seguinte maneira.

\Package::load('email');

A configuração do e-mail pode ser feita no arquivo de configuração principal e algumas das opções importantes são as seguintes,

  • driver - Driver de e-mail como smtp

  • is_html - Se enviar e-mail como conteúdo HTML ou não

  • priority - Prioridade do email

  • smtp.host - host do servidor SMTP

  • smtp.port - porta do servidor SMTP

  • smtp.username - Nome de usuário do servidor SMTP

  • smtp.password - senha do servidor SMTP

  • smtp.timeout - tempo limite de SMTP

  • smtp.starttls - Se o servidor SMTP precisa do comando STARTTLS

API de email

A seguir estão a API fornecida pela classe de driver de email e email.

forja

Objetivo: Criar uma instância de driver de e-mail. Ele cria o driver com base na configuração ou entrada que recebe. O driver de email fornece recursos para criar e enviar email. Alguns dos possíveis drivers de e-mail sãosmtp, sendmail, mailgun, e mandrill.

  • Parameter - Nenhum ou conjunto de detalhes de configuração

  • Returns - Retorna o objeto Email_Driver

Por exemplo,

$email = \Email::forge();  
$email = \Email::forge (array( 
   'driver' => 'smtp', 
));

corpo

  • Purpose - Para definir o corpo da mensagem

  • Parameter - $ body - corpo da mensagem

  • Returns - Retorna a instância atual

Por exemplo,

$email = \Email::forge(); 
$email->body('Body message');  

//or pass it a View 
$email->body(\View::forge('my/view', $data);

alt_body

  • Purpose - Para definir o corpo da mensagem alternativa

  • Parameter - $ alt_body - corpo alternativo da mensagem

  • Returns - Retorna a instância atual

Por exemplo,

$email = \Email::forge(); 
$email->alt_body('Body message');  

//or pass it a View 
$email->alt_body(\View::forge('my/view', $data);

prioridade

  • Purpose - Para definir a prioridade do correio

  • Parameter -

    • $priority- valor da prioridade. As opções são -

a. \Email::P_LOWEST 
* \Email::P_LOW 
* \Email::P_NORMAL 
* \Email::P_HIGH 
* \Email::P_HIGHEST
  • Returns - Retorna a instância atual

Por exemplo,

$email = \Email::forge(); 
$email->priority(\Email::P_HIGHEST);

html_body

  • Purpose - Para definir o corpo da mensagem no formato HTML

  • Parameter -

    • $html - corpo da mensagem em HTML;

    • generate_alt - se deve gerar mensagem alternativa;

    • auto_attach - se deseja incorporar a imagem ou não

  • Returns - Retorna a instância atual

Por exemplo,

$email = \Email::forge();  

// Do generate the alt body, but don't auto attach images. 
$email->html_body(\View::forge('welcome/email', $data), true, false);

de

  • Purpose - Para definir o endereço de

  • Parameters -

    • $from - do endereço de e-mail;

    • $name - Nome do remetente

  • Returns - Retorna a instância atual

Por exemplo,

$email = \Email::forge(); 
$email->from('[email protected]', 'My Name');

sujeito

  • Purpose - Para definir o assunto da mensagem

  • Parameter - $ subject - assunto da mensagem de e-mail

  • Returns - Retorna a instância atual

Por exemplo,

$email = \Email::forge(); 
$email->subject('Suject of the mail message');

para

  • Purpose - Para definir o endereço de e-mail do destinatário

  • Parameters -

    • $email - endereço de e-mail ou matriz de endereço de e-mail;

    • $name - nome do receptor

  • Returns - Retorna a instância atual

Por exemplo,

$email = \Email::forge();  
$email->to('[email protected]', 'My Dear Name'); 
$email->to (array( 
   '[email protected]', 
   '[email protected]' => 'My Dear friend', 
));

cabeçalho

  • Purpose - Para definir o cabeçalho personalizado da mensagem de e-mail

  • Parameters -

    • $header - tipo de cabeçalho ou matriz de cabeçalho;

    • $value - valor do cabeçalho

  • Returns - Retorna a instância atual

Por exemplo,

$email = \Email::forge(); 
$email->header('X-SMTPAP', 'XXXXXXXX'); 
$email>reply_to (array( 
   'X-SMTPAP'  => 'XXXXXX', 
   'X-SMTPAP2' > 'XXXXXA',
));

anexar

  • Purpose - Para anexar um arquivo à mensagem de e-mail

  • Parameters-

    • $file - caminho do arquivo;

    • $inline - se deseja anexar o arquivo inline ou não;

    • $cid - identificador de conteúdo;

    • $mime - Tipo MIME do arquivo anexo;

    • $name - substituição do nome do arquivo de anexo

  • Returns - Retorna a instância atual

Por exemplo,

$email = \Email::forge();
$email>attach(DOCROOT.'attachments/sample_attachment.pdf');

enviar

  • Purpose - Para enviar o e-mail.

  • Parameter -

    • $validate - validar os endereços de e-mail

  • Returns - verdadeiro ou falso

Por exemplo,

$email = \Email::forge(); 
try{ 
   $email->send(); 

} catch(\EmailSendingFailedException $e) { 
   // The driver could not send the mail. 

} catch(\EmailValidationFailedException $e) { 
   // One or more email addresses failed validation. 
}

Amostra de Email Prático

Vamos usar a API aprendida no capítulo anterior e criar um código simples para enviar uma mensagem. A seguir está o código mais simples para enviar uma mensagem.

$email = Email::forge(); 
$email->from('[email protected]', 'person1'); 
$email->to('[email protected]', 'person2'); 
$email->subject('Add something'); 
$email->body('contents of mail'); $email->send();