В последнее время у меня возникла небольшая проблема с FOSUserBundle. С прошлой недели он не отправляет никаких электронных писем, пока моя конфигурация Swift Mailer работает; Я могу отправлять почту через контактную форму. Единственное изменение, которое я сделал, - это добавление некоторых полей в файл parameters.yml.
Вот мой config.yml:
# Swiftmailer Configuration
swiftmailer:
default_mailer: mailer_1
mailers:
mailer_1:
transport: '%mailer_transport%'
encryption: '%mailer_encryption%'
auth_mode: '%mailer_auth_mode%'
host: '%mailer_host%'
username: '%mailer_user%'
password: '%mailer_password%'
port: '%mailer_port%'
sender_address: '%mailer_name%'
spool:
type: file
path: '%kernel.project_dir%/spool'
fos_user:
db_driver: orm
firewall_name: main
user_class: AppBundle\Entity\User
service:
mailer: fos_user.mailer.twig_swift
from_email:
address: '%mailer_user%'
sender_name: '%mailer_name%'
registration:
confirmation:
enabled: true
template: '@FOSUser/Registration/email.txt.twig'
form:
type: AppBundle\Form\RegistrationFormType
resetting:
email:
template: '@FOSUser/Resetting/email.txt.twig'
profile:
form:
type: AppBundle\Form\ProfileFormType
Я знаю, что почта в fos_user должна быть такой же, как и в swiftmailer, и вот она. Любая идея?
Я действительно плохо подписываюсь на события. Я делаю это для ИНИЦИАЛИЗАЦИИ, но не для ПОДТВЕРЖДЕНИЯ. А что вы имеете в виду, когда публикуете результат событий? Хотите дамп (событие $)?
Сделайте это для подтверждения, и да, дамп или журнал, который сообщает вам, что происходит, а что нет. Электронное письмо инициализируется?




Посмотрите на свой файл parameters.yml, возможно, вы не настроили соответствие информации SMTP. Если вы хотите использовать функцию mail() в php, вы должны настроить php.ini в соответствии с конфигурацией вашего сервера.
Надеюсь, поможет.
Я думаю, что мои parameters.yml в порядке, так как через мою контактную форму с помощью \ Swift_message электронное письмо отправляется.
Попробуйте настроить свой файл parameters.yml следующим образом:
parameters:
mailer_transport: mail
mailer_host: smtp.gmail.com
mailer_user:
mailer_password:
У меня это сработало (Symfony 3.4), но в зависимости от получателя оно могло попасть в СПАМ.
Поскольку единственная модификация, которую вы сделали, - это parameters.yml, какие строки вы добавили?
Я добавил 2 письма в конце файла, например, newsletter_user - newsletter_password - contact_user - contact_password.
Попробуйте подписаться на одно из связанных с электронной почтой событий FOSUserBundle, в частности на RESETTING_SEND_EMAIL_INITIALIZE и RESETTING_SEND_EMAIL_CONFIRM, и опубликуйте результат событий, чтобы увидеть, что на самом деле происходит позади. После публикации результатов, чтобы дать вам правильный ответ