FuelPHP - Gestión de correo electrónico

La funcionalidad de correo electrónico es la característica más solicitada en un marco web. FuelPHP ofrece una elegante clase de correo electrónico incluida como un paquete. Se utiliza para enviar correos electrónicos de texto sin formato simple, así como correo electrónico de texto enriquecido avanzado con múltiples archivos adjuntos. Admite las siguientes funciones: correos de texto sin formato, correos HTML, archivos adjuntos y archivos adjuntos en línea.

Configuración

Para habilitar la funcionalidad de correo electrónico en la aplicación, solo necesitamos cargar el paquete de correo electrónico como se especifica a continuación en el archivo de configuración principal, fuel / app / config / config.php.

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

Otra opción es cargar el paquete de correo electrónico, el controlador en sí de la siguiente manera.

\Package::load('email');

La configuración del correo electrónico se puede realizar en el archivo de configuración principal y algunas de las opciones importantes son las siguientes:

  • driver - Controlador de correo electrónico como smtp

  • is_html - Ya sea para enviar correo como contenido HTML o no

  • priority - Prioridad del correo electrónico

  • smtp.host - Host del servidor SMTP

  • smtp.port - Puerto del servidor SMTP

  • smtp.username - Nombre de usuario del servidor SMTP

  • smtp.password - Contraseña del servidor SMTP

  • smtp.timeout - Tiempo de espera de SMTP

  • smtp.starttls - Si el servidor SMTP necesita el comando STARTTLS

API de correo electrónico

A continuación se muestra la API proporcionada por el correo electrónico y la clase de controlador de correo electrónico.

fragua

Propósito: Crear una instancia de controlador de correo electrónico. Crea el controlador en función de la configuración o entrada que recibe. El controlador de correo electrónico proporciona funciones para crear y enviar correo. Algunos de los posibles controladores de correo electrónico sonsmtp, sendmail, mailgun, y mandrill.

  • Parameter - Ninguno o conjunto de detalles de configuración

  • Returns - Devuelve el objeto Email_Driver

Por ejemplo,

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

cuerpo

  • Purpose - Para configurar el cuerpo del mensaje

  • Parameter - $ body - cuerpo del mensaje

  • Returns - Devuelve la instancia actual

Por ejemplo,

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

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

alt_body

  • Purpose - Para establecer el cuerpo del mensaje alternativo

  • Parameter - $ alt_body - cuerpo del mensaje alternativo

  • Returns - Devuelve la instancia actual

Por ejemplo,

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

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

prioridad

  • Purpose - Para establecer la prioridad del correo

  • Parameter -

    • $priority- valor de la prioridad. Las opciones son:

a. \Email::P_LOWEST 
* \Email::P_LOW 
* \Email::P_NORMAL 
* \Email::P_HIGH 
* \Email::P_HIGHEST
  • Returns - Devuelve la instancia actual

Por ejemplo,

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

html_body

  • Purpose - Para configurar el cuerpo del mensaje en formato HTML

  • Parameter -

    • $html - cuerpo del mensaje en HTML;

    • generate_alt - si generar un mensaje alternativo;

    • auto_attach - si incrustar la imagen o no

  • Returns - Devuelve la instancia actual

Por ejemplo,

$email = \Email::forge();  

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

desde

  • Purpose - Para configurar la dirección de remitente

  • Parameters -

    • $from - de la dirección de correo electrónico;

    • $name - Nombre del remitente

  • Returns - Devuelve la instancia actual

Por ejemplo,

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

tema

  • Purpose - Para establecer el asunto del mensaje

  • Parameter - $ asunto - asunto del mensaje de correo electrónico

  • Returns - Devuelve la instancia actual

Por ejemplo,

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

a

  • Purpose - Para configurar la dirección de correo electrónico del destinatario

  • Parameters -

    • $email - dirección de correo electrónico o conjunto de direcciones de correo electrónico;

    • $name - nombre del receptor

  • Returns - Devuelve la instancia actual

Por ejemplo,

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

encabezamiento

  • Purpose - Para configurar un encabezado personalizado para el mensaje de correo electrónico

  • Parameters -

    • $header - tipo de encabezado o matriz de encabezado;

    • $value - valor del encabezado

  • Returns - Devuelve la instancia actual

Por ejemplo,

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

adjuntar

  • Purpose - Para adjuntar un archivo al mensaje de correo electrónico

  • Parameters-

    • $file - ruta del archivo;

    • $inline - si adjuntar el archivo en línea o no;

    • $cid - identificador de contenido;

    • $mime - Tipo MIME del archivo adjunto;

    • $name - anulación del nombre del archivo adjunto

  • Returns - Devuelve la instancia actual

Por ejemplo,

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

enviar

  • Purpose - Para enviar el correo.

  • Parameter -

    • $validate - si validar las direcciones de correo electrónico

  • Returns - verdadero o falso

Por ejemplo,

$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. 
}

Ejemplo de correo electrónico de trabajo

Usemos la API aprendida en el capítulo anterior y creemos un código simple para enviar un mensaje. A continuación se muestra el código más simple para enviar un mensaje.

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