Как в Symfony 5 / Mailer отключить TLS?

В Symfony 5 для отключения TLS при использовании Mailer требуется выполнить несколько шагов.

Шаг 1: Установка библиотеки Swiftmailer
Первым шагом нужно установить библиотеку Swiftmailer, которая является зависимостью Symfony Mailer. Выполните следующую команду в корневом каталоге вашего проекта:

composer require swiftmailer

Шаг 2: Конфигурация Mailer
Затем нужно настроить Mailer в файле config/packages/mailer.yaml. Установите dsn в значение null и добавьте transport со значением smtp, а также host, port, encryption, auth_mode и другие опции по вашему усмотрению. Для отключения TLS установите encryption в значение null. Пример конфигурации может выглядеть так:

framework:
    mailer:
        dsn: null
        transport: smtp
        host: smtp.example.com
        port: 25
        encryption: null
        auth_mode: null
        username: null
        password: null

Шаг 3: Использование Mailer
Теперь вы можете использовать Mailer для отправки электронных писем без использования TLS. Ниже представлен пример использования Mailer в контроллере:

use SymfonyComponentMailerMailerInterface;
use SymfonyComponentMimeEmail;

class MyController extends AbstractController
{
    public function sendEmail(MailerInterface $mailer)
    {
        $email = (new Email())
            ->from('[email protected]')
            ->to('[email protected]')
            ->subject('Test Email')
            ->text('Hello, World!')
            ->html('<p>Hello, World!</p>');

        $mailer->send($email);

        return $this->redirectToRoute('success_page');
    }
}

Теперь при вызове действия sendEmail() будет отправлено электронное письмо без использования TLS.

Обратите внимание, что отключение TLS может быть небезопасным и не рекомендуется для использования в продакшн среде, так как это уязвимость для промежуточных атак. Рекомендуется использовать безопасные методы связи, такие как TLS, для защиты данных и конфиденциальности. Если у вас есть особые обстоятельства, которые требуют отключения TLS, обязательно проконсультируйтесь с командой безопасности вашего проекта.