Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Psl Laravel Package

azjezz/psl

PSL (PHP Standard Library) offers a consistent, well-typed set of safer, async-ready APIs to replace PHP primitives. Covers async, collections, networking, I/O, cryptography, terminal UI, and type-safe data validation with predictable errors.

View on GitHub
Deep Wiki
Context7

SMTP

The SMTP component implements an RFC 5321 SMTP client with connection pooling, TLS, authentication, and support for modern SMTP extensions. It integrates with the Message and MIME components for complete email sending.

Sending a Message

The Transport handles the full SMTP lifecycle: connection, EHLO, TLS, authentication, message transmission, and connection reuse. Pass an Envelope (derived from message headers) and a MessageInterface to send.

@example('protocols/smtp-basic.php')

Authentication

Five authentication mechanisms are supported. Pass any AuthenticatorInterface as the second argument to Transport.

@example('protocols/smtp-auth.php')

Transport Configuration

TransportConfiguration controls connection-level settings: host, port, security mode, pipelining, chunking, and TCP/TLS options. All settings are immutable with fluent with*() builders.

@example('protocols/smtp-config.php')

Send Configuration

SendConfiguration controls per-send MAIL FROM extension parameters: DSN notifications, REQUIRETLS, message priority, delivery deadlines, and deferred delivery.

@example('protocols/smtp-send-config.php')

Partial Recipient Success

By default, the transport throws on the first rejected recipient. Enable allowPartialSuccess to deliver to accepted recipients and report failures via DeliveryReport.

@example('protocols/smtp-partial.php')

Async and Cancellation

The transport is fully async-capable. Use Async\concurrently to send multiple messages in parallel with automatic connection pooling. Use cancellation tokens for timeouts.

@example('protocols/smtp-async.php')

Low-Level Connection

Connection implements Network\StreamInterface and speaks raw SMTP commands. Use it for direct protocol interaction or to build custom transports.

@example('protocols/smtp-connection.php')

SMTP Extensions

The transport automatically negotiates these extensions when the server advertises them:

Extension RFC Description
PIPELINING RFC 2920 Send multiple commands before reading replies
CHUNKING RFC 3030 BDAT transfer without dot-stuffing
BINARYMIME RFC 3030 Binary content without transfer encoding
8BITMIME RFC 6152 8-bit MIME transport
SMTPUTF8 RFC 6531 Internationalized email addresses
STARTTLS RFC 3207 TLS upgrade on plaintext connections
DSN RFC 3461 Delivery status notifications
REQUIRETLS RFC 8689 End-to-end TLS enforcement
MT-PRIORITY RFC 6710 Message priority levels
DELIVERBY RFC 2852 Delivery deadline specification
FUTURERELEASE RFC 4865 Deferred delivery
SIZE RFC 1870 Server maximum message size

Security

The transport validates all SMTP commands for CRLF and null byte injection attacks. Malicious input in addresses, hostnames, or DSN parameters throws PossibleAttackException before reaching the wire.

See src/Psl/SMTP/ for the full API.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
jayeshmepani/jpl-moshier-ephemeris-php
elnasnato/laraliveui
labrodev/rest-sdk
sampaui/sampaui
babelqueue/php-sdk
facebook/capi-param-builder-php
babelqueue/symfony
hamzi/corewatch
minionfactory/raw-hydrator
hexters/coinpayment
rjcodes/rjcms
act-training/laravel-permissions-manager
alimarchal/laravel-chart-of-accounts
babenkoivan/elastic-scout-driver
mkwebdesign/filament-watchdog-v5
renatomarinho/laravel-page-speed
zedmagdy/filament-business-hours
renatovdemoura/blade-elements-ui
devgeek/beacon-admin
benjamin-rqt/data-watcher-bundle