SmtpSenderStrategy
extends AbstractStrategy
in package
implements
SenderStrategyInterface
Envío de documentos usando la estrategia SMTP de correo electrónico.
Attributes
- #[Strategy]
- $name: 'email.smtp'
- $worker: 'sender'
- $component: 'exchange'
- $package: 'billing'
Table of Contents
Interfaces
- SenderStrategyInterface
- Interfaz para las estrategias del worker "billing.exchange.sender".
Properties
- $mailPackage : MailPackageInterface
Methods
- __construct() : mixed
- Constructor de la estrategia y sus dependencias.
- canSend() : void
- Indica si la estrategia puede enviar un sobre específico.
- send() : array<string|int, ExchangeResultInterface>
- Envía documentos a través del proceso de intercambio.
- resolveRecipients() : array<string|int, Address>
- Resuelve y entrega los datos de los receptores.
- resolveSender() : Address
- Resuelve y entrega los datos del remitente.
- resolveTransportOptions() : array<string, mixed>
- Resuelve y entrega los datos de transporte.
- sendEnvelope() : ExchangeResultInterface
- Envía los documentos de un sobre por correo.
- uniqueAddresses() : array<int, Address>
- Quita las direcciones repetidas, para que cada destinatario reciba el correo una sola vez aunque esté en más de un campo (por ejemplo, como destinatario del sobre y en copia).
Properties
$mailPackage
private
MailPackageInterface
$mailPackage
Methods
__construct()
Constructor de la estrategia y sus dependencias.
public
__construct(MailPackageInterface $mailPackage) : mixed
Parameters
- $mailPackage : MailPackageInterface
canSend()
Indica si la estrategia puede enviar un sobre específico.
public
canSend(EnvelopeInterface $envelope, ExchangeBagInterface $bag) : void
Parameters
- $envelope : EnvelopeInterface
-
Sobre que se desea enviar.
- $bag : ExchangeBagInterface
-
Bolsa que contiene el sobre, con las opciones comunes a todos los sobres que envíe esta llamada.
send()
Envía documentos a través del proceso de intercambio.
public
send(ExchangeBagInterface $bag) : array<string|int, ExchangeResultInterface>
Parameters
- $bag : ExchangeBagInterface
-
Bolsa con los sobres y opciones para realizar el intercambio de documentos.
Return values
array<string|int, ExchangeResultInterface> —Los resultados de procesar los sobres de la bolsa. Tiene el estado de cada estrategia que procesó el sobre.
resolveRecipients()
Resuelve y entrega los datos de los receptores.
private
resolveRecipients(EnvelopeInterface $envelope) : array<string|int, Address>
Parameters
- $envelope : EnvelopeInterface
Tags
Return values
array<string|int, Address>resolveSender()
Resuelve y entrega los datos del remitente.
private
resolveSender(EnvelopeInterface $envelope) : Address
Parameters
- $envelope : EnvelopeInterface
Tags
Return values
AddressresolveTransportOptions()
Resuelve y entrega los datos de transporte.
private
resolveTransportOptions(ExchangeBagInterface $bag) : array<string, mixed>
Las opciones de transporte son comunes a todos los sobres que se envíen en una misma llamada — si se necesita enviar con transportes distintos (por ejemplo, remitentes/cuentas SMTP distintas), corresponde hacer una llamada separada por cada transporte.
Parameters
- $bag : ExchangeBagInterface
Tags
Return values
array<string, mixed>sendEnvelope()
Envía los documentos de un sobre por correo.
private
sendEnvelope(EnvelopeInterface $envelope, ExchangeBagInterface $bag) : ExchangeResultInterface
Parameters
- $envelope : EnvelopeInterface
-
Sobre con documentos a enviar.
- $bag : ExchangeBagInterface
-
Bolsa que contiene el sobre, con las opciones de transporte comunes a todos los sobres de este envío.
Return values
ExchangeResultInterface —Resultado del envío del sobre.
uniqueAddresses()
Quita las direcciones repetidas, para que cada destinatario reciba el correo una sola vez aunque esté en más de un campo (por ejemplo, como destinatario del sobre y en copia).
private
uniqueAddresses(array<string|int, Address> $addresses) : array<int, Address>
Parameters
- $addresses : array<string|int, Address>