bravesheep / mailer-url-bundle
根据单个基于URL的参数确定Symfony2邮件发送器设置
Requires
- symfony/config: ~3.4|^4.0
- symfony/dependency-injection: ~3.4|^4.0
- symfony/http-kernel: ~3.4|^4.0
Requires (Dev)
- phpspec/phpspec: ^5.1
This package is auto-updated.
Last update: 2023-03-25 20:56:58 UTC
README
这是一个用于解析指定使用哪个邮件发送器的URL内容的Symfony2包。
安装和配置
使用 Composer 通过require命令将包添加到依赖项: composer require bravesheep/mailer-url-bundle:dev-master
。
将包添加到AppKernel
在您的 app/AppKernel.php
中添加该包。 注意:为了使此包定义的参数被Swiftmailer拾取,您需要在包含 Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle
包之前包含此包。
public function registerBundles() { return array( // ... new Bravesheep\MailerUrlBundle\BravesheepMailerUrlBundle(), // ... ); }
配置应重写为参数的URL
为了使此包工作,您需要指定哪些URL需要重写为基本参数。此包可以通过在 bravesheep_mailer_url.urls
下配置正确的属性来处理任意数量的URL。请参考以下示例配置
bravesheep_mailer_url: urls: default: url: %mailer_url% prefix: mailer_
在这种情况下,我们从 mailer_url
参数的值中创建参数,并使用前缀 mailer_
。
用法
查看由Symfony2标准版分发的此 parameters.yml.dist
parameters: database_driver: pdo_mysql database_host: 127.0.0.1 database_port: ~ database_name: symfony database_user: root database_password: ~ mailer_transport: smtp mailer_host: 127.0.0.1 mailer_user: ~ mailer_password: ~ locale: en secret: ThisTokenIsNotSoSecretChangeIt debug_toolbar: true debug_redirects: false use_assetic_controller: true
如您所见,我们需要4个参数来指定SMTP设置,这还不包括在SMTP(可能在不同环境中有所不同)的情况下设置端口、加密或认证方法。如果能通过指定单个URL来减少所需的参数数量并指定要使用的邮件发送器,那将会很好。
parameters: database_driver: pdo_mysql database_host: 127.0.0.1 database_port: ~ database_name: symfony database_user: root database_password: ~ mailer_url: smtp://127.0.0.1 locale: en secret: ThisTokenIsNotSoSecretChangeIt debug_toolbar: true debug_redirects: false use_assetic_controller: true
仍然易于阅读,但更加简洁。BravesheepMailerUrlBundle可以做到这一点。根据上一节中所示配置和此配置,该包使用 mailer_url
创建以下参数
mailer_transport
和 mailer_host
,带有正确的数据。
一般来说,此包将任何有效的邮件发送器URL转换为以下参数,并使用指定的前缀: transport
、host
、port
、user
、password
、encryption
和 auth_mode
。
接受的URL
URL通常格式为 scheme://user:password@host:port
。以下方案被理解:
smtp
用于基本的SMTPsmtp+ssl
或ssl+smtp
用于带有SSL加密的SMTPsmtp+tls
或tls+smtp
用于带有TLS加密的SMTPgmail
用于由Symfony提供的GMail邮件传输mail
用于使用PHP内部的mail()
函数sendmail
用于使用系统提供的sendmail二进制文件
可以通过查询参数指定encryption
(除了首选的方案)和auth_mode
参数,例如:smtp://user:pass@localhost/?encryption=tls&auth_mode=plain
。有效的auth_mode
值有plain
、login
和cram-md5
。
可以通过省略认证字符串后的所有内容来指定Gmail URL,例如:gmail://user@gmail.com:password
。对于邮件和sendmail,可以使用:mail://
或mail
,以及sendmail://
或sendmail
。