logger (constructor) property to RoundRobinTransportretry_period to override default email transport retry periodDsn::getBooleanOption()source_ip to allow binding to a (specific) IPv4 or IPv6 address.require_tls to enforce use of TLS/STARTTLSDkimSignedMessageListener, SmimeEncryptedMessageListener, and SmimeSignedMessageListenerDeprecate TransportFactoryTestCase, extend AbstractTransportFactoryTestCase instead
The testIncompleteDsnException() test is no longer provided by default. If you make use of it by implementing the incompleteDsnProvider() data providers,
you now need to use the IncompleteDsnTestTrait.
Make TransportFactoryTestCase compatible with PHPUnit 10+
PostmarkDeliveryEvent instead of throwing an exceptionauto_tls to disable automatic STARTTLSrecipients is defined in EnvelopeListenerpeer_fingerprint to verify TLS certificate fingerprintmailjet+smtp transport from 465 to 587MessageEvent::reject() to allow rejecting an email before sending itmailgun+smtp transport from 465 to 587$authenticators parameter in EsmtpTransport constructor and EsmtpTransport::setAuthenticators()
to allow overriding of default eSMTP authenticatorsTransportFactoryTestCase are now static:
supportsProvider(), createProvider(), unsupportedSchemeProvider()and incompleteDsnProvider()mailer:test commandSentMessageEvent and FailedMessageEvent eventsstart() and stop() methods public on SmtpTransportEsmtpTransportHttpTransportException class takes a string at first argumentmailer monolog channel and set it on all transport definitionsNativeTransportFactory to configure a transport based on php.ini settingslocal_domain, restart_threshold, restart_threshold_sleep and ping_threshold options for smtpcommand option for sendmailNullTransport DSN from smtp://null to null://nullSmtpEnvelope to Envelope, renamed DelayedSmtpEnvelope to
DelayedEnvelope[BC BREAK] changed the syntax for failover and roundrobin DSNs
Before:
dummy://a || dummy://b (for failover) dummy://a && dummy://b (for roundrobin)
After:
failover(dummy://a dummy://b) roundrobin(dummy://a dummy://b)
added support for multiple transports on a Mailer instance
auth_mode DSN option (it is now always determined automatically)encryption DSN option (use smtps instead)smtps protocol (does the same as using smtp and port 465)MessageDataCollectorMessageEvents and MessageLoggerListener to allow collecting sent emailsTransportInterface has a new __toString() methodAbstractApiTransport and AbstractHttpTransport moved under Transport sub-namespace.Symfony\Contracts\EventDispatcher\EventDispatcherInterface
instead of Symfony\Component\EventDispatcher\EventDispatcherInterface.Symfony\Component\Mailer\Transport\TransportFactoryInterface and tagging with mailer.transport_factory tag in DI.Symfony\Component\Mailer\Test\TransportFactoryTestCase to ease testing custom transport factories.SentMessage::getDebug() and TransportExceptionInterface::getDebug to help debuggingMessageEvent finalverify_peer to disable TLS peer verification for SMTP transport