Gestor de envío de correo electrónico.
$email = new Email();
$email->to('to@example.com');
$email->replyTo('reply@example.com');
$email->subject('Test');
$email->message('...', Email::MESSAGE_ONLY_PLAIN);
$result = $email->send();
public Email::__construct( TransportInterface $transport = null )
Un transporte para enviar los correos. Si no se ingrresa un transporte, se utilizará el declarado en las configuraciones.
Métodos para ingresar direcciones de correo.
public Email::to( string|array $address ): void
Acepta formatos del tipo:
Propiedad y método para ingresar el motivo del mensaje.
public Email::subject( string $subject ): void
Ingresa el mensaje.
public Email::message ( string $message, mixed $alternative ): void
El mensage a enviar, puede ser texto plano o html.
Puede ser una cadena de texto plano, alternativo al mensaje. También una de las siguientes constantes:
| Nombre | Tipo | Valor | Descripción |
|---|---|---|---|
| Email::MESSAGE_IS_PLAIN | int | -1 | El mensaje es sólo texto plano. |
| Email::MESSAGE_IS_HTML | bool | false | El mensaje es sólo html. |
| Email::MESSAGE_ALTER_PLAIN | bool | true | Genera un texto plano a partir del mensaje. |
Adjunta archivos al correo.
public Email::attachment (
string $filename,
string $name = '',
string $disposition = 'attachment',
string $cid = '',
string $encoding = 'base64'
): bool
Ruta al archivo a adjuntar.
Nombre del archivo.
Puede ser 'attachment' o 'inline'
Identificador. Se utiliza sólo en la disposición inline.
Generalmente será base64.
Envia el mensaje a las direcciones ingresadas.
public Email::send ( string $transport = '' ): bool
Selecciona un transporte para enviar el mensaje, de no ingresar nada, se enviará a través del transporte predeterminado.
La mayoría de las propiedades son configurables desde el sistema. Eso simplifica la utilización.
Agrega el encabezado x-mailer.
public Email::$x_mailer
Agrega el encabezado priority.
public Email::$priority = 0
Juego de caracteres del encabezado.
public Email::$h_charset // 'iso-8859-1' or 'utf-8' or ...
Codificación del encabezado.
public Email::$h_enconding // 'Q' or 'B'
Juego de caracteres del mensaje.
public Email::$m_charset
Codificación del mensaje.
public Email::$m_enconding
Ajuste de línea del mensaje.
public Email::$word_wrap = 70;
Ruta base para los archivos adjuntos.
public Email::$attachment_base = '';
Los tranportes deben implementar la interface TransportInterface. También, pueden extender la clase abstracta TransportAbstract, que implementa la depuración.
Los transportes disponibles son:
mail.smtp.Para utilizar un tranporte o para configurarlo, debe ir a los Ajustes del CMS. En cambio, si por ejemplo, quiere tener una configuración separada del CMS, debe inyectar una instancia del transporte al crear un objeto Email.
use Junco\Email\Transport\MailTransport;
$transport = new MailTransport();
$email = new Email($transport);
Si desea utilizar el transporte, más allá de los Ajustes del CMS, podrá hacerlo creando una instancia:
use Junco\Email\Transport\SmtpTransport;
$transport = new SmtpTransport();
public SmtpTransport::$smtp_host = '...';
public SmtpTransport::$smtp_port = 0;
public SmtpTransport::$smtp_timeout = 30;
public SmtpTransport::$smtp_secure = true;
public SmtpTransport::$smtp_auth = true;
public SmtpTransport::$smtp_user = '...';
public SmtpTransport::$smtp_pwd = '...';