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();