我在Symfony 3.2.4和PHP 5.6.28中的应用程序
一切都是最新的: 我的SwiftMailer版本:
symfony / swiftmailer-bundle(v2.5.4)
当我阅读官方文档时,我写道我可以像这样为SwiftMailer添加参数:
config.yml
swiftmailer:
transport: "%mailer_transport%"
host: "%mailer_host%"
username: "%mailer_user%"
password: "%mailer_password%"
encryption: "%mailer_encryption%"
port: "%mailer_port%"
spool: { type: memory }
logging: true
parameters.yml
parameters:
database_host: localhost
database_port: null
database_name: BASE
database_user: root
database_password: root
mailer_host: smtp-relay._.com
mailer_port: 587
mailer_transport: smtp
mailer_encryption: tls
mailer_user: -
mailer_password: -
secret: -
但是当我运行“作曲家更新”时,我总是得到同样的错误:
[Symfony的\元器件\ DependencyInjection \异常\ ParameterNotFoundException] 您已请求不存在的参数“mailer_encryption”
我必须在config.yml中评论“加密”和“端口”并再次进行“作曲家更新”。
这是SwiftMailer Bundle的正常行为吗?有人能帮助我吗?
我正在使用FOSuser。
答案 0 :(得分:4)
如果有人再次遇到此问题,那是因为在更新时,作曲家会查看parameters.yml.dist
哪个用作模板,如果parameters.yml
中的参数不在模板中,他们会被删除。
所以在parameters.yml.dist
中你必须添加字段:
paremeters:
....
mailer_transport: smtp
mailer_host: 127.0.0.1
mailer_encryption: ~ (<!-- this line was added -->)
mailer_user: ~
mailer_password: ~
...
然后您可以像以前一样在parameters.yml
中添加值,并在config.yml
swiftmailer:
transport: "%mailer_transport%"
host: "%mailer_host%"
username: "%mailer_user%"
password: "%mailer_password%"
encryption: "%mailer_encryption%" (<!-- like this -->)
port: 587
spool: { type: memory }
logging: true
同样适用于端口
答案 1 :(得分:2)
我一周前解决了这个问题:
# Swiftmailer Configuration
swiftmailer:
transport: "%mailer_transport%"
host: "%mailer_host%"
username: "%mailer_user%"
password: "%mailer_password%"
encryption: tls
port: 587
spool: { type: memory }
logging: true