Symfony 4 SwiftMailer Gmail: электронное письмо не отправлено

В настоящее время я работаю над приложением Symfony 4, и мне нужно отправлять электронные письма через Swift Mailer. Когда я отправляю электронное письмо, я получаю буферное письмо, но не получаю его в своем почтовом ящике Gmail. Я разрешил небезопасные приложения в своей конфигурации Gmail.

Это мой URL-адрес почтовой программы из файла .env: MAILER_URL = gmail: //ep****@gmail.com: PASSWORD @ localhost

Это мой swiftmailer.yaml:

    #config/packages/swiftmailer.yaml
    swiftmailer:
        url: '%env(MAILER_URL)%'
        spool: { type: 'memory' }

Это моя функция контроллера:

SRC / Контроллер / AccountController.php

«После

Это документация, которой я следил: http://symfony.com/doc/current/email.html

Я проверил эти вопросы, но они не дают мне ответа: Как отправлять электронные письма с помощью Symfony 4 Swiftmailer с локального компьютера под управлением Windows 10?, почтовая программа symfony 4 не работает

Пожалуйста, мне нужна помощь. Я весь день искал решение. Я не получаю ошибок, но не получаю почту. Заранее спасибо. Любая ссылка может мне помочь.


person Salve Safari    schedule 21.02.2018    source источник
comment
пожалуйста, воздержитесь от публикации снимка кода вместо самого кода   -  person Ibo    schedule 22.02.2018
comment
Вы настроили задание CRON для обработки катушки? Вы пробовали опустить настройку конфигурации спула? Спулинг - это требование?   -  person Arleigh Hix    schedule 25.02.2018
comment
Я не устанавливал. Я попытался исключить бассейн, но без изменений.   -  person Salve Safari    schedule 25.02.2018
comment
У меня такая же проблема. Вы это решили? @SalveSafari   -  person Alex Pavlov    schedule 05.03.2018
comment
Да, решил :) Пожалуйста, прочтите ниже   -  person Salve Safari    schedule 14.03.2018
comment
Это мое решение. Он отлично работает на symfony 4.x stackoverflow.com/a/55542824/2400373   -  person juanitourquiza    schedule 05.04.2019


Ответы (5)


Задача решена!! Поместите эту конфигурацию вместо использования переменной env URL

swiftmailer:
    transport:        gmail
    username:         ****@gmail.com
    password:         *******
    host:             localhost
    port:             465
    encryption:       ssl
    auth-mode:        login
    spool: { type: 'memory' }
    stream_options:
        ssl:
            allow_self_signed: true
            verify_peer: false
            verify_peer_name: false
person Salve Safari    schedule 06.03.2018
comment
Мерси! Это сделало трюк. Есть идеи, почему файл .env не работает? - person Miles M.; 04.06.2018
comment
Я заметил, что переход с Symfony 3 на Symfony 4 локальный SMTP больше не включен. Чтобы использовать локальный SMTP в вашем .env, установите MAILER_URL = smtp: // localhost: 25? Encryption = & auth_mode = - person Robert Saylor; 24.10.2018
comment
Мудрый ответ. Сэкономил часы разочарования. Спасибо, @Selve! - person Anjana Silva; 08.01.2019

Поздно к вечеринке, но формат URL требует полных настроек. Я не думаю, что SwiftMailer анализирует URL-адрес, чтобы обнаружить конкретный транспорт (например, gmail), чтобы настроить сброс самостоятельно.

У меня сработал следующий формат:

MAILER_URL=smtp://smtp.gmail.com:587?encryption=tls&username=USERNAME&password=PASSWORD
person ar34z    schedule 30.01.2019

По моему опыту, вам потребуется включить "Разрешить небезопасный вход" в Google Suite или Учетная запись Gmail, поскольку они предотвращают доступ через SMTP.

person shakaran    schedule 05.02.2019

Закомментируйте строку диспетчера очереди печати

swiftmailer:
url: '%env(MAILER_URL)%'
#spool: { type: 'memory' }
person Smith    schedule 14.05.2019
comment
Спасибо вам огромное, вы мне очень помогли :) - person Ahmed Ismail; 19.06.2020

URL-адрес MAILER_URL должен быть закодирован. Ознакомьтесь с документацией по адресу: https://symfony.com/doc/current/email.html#configuration

Если в вашем пароле были какие-то специальные символы, которые нужно было закодировать по URL-адресу, он не сработает.

Надеюсь, это поможет.

person Dbl0McJim    schedule 01.09.2018