我正在 CakePHP 4.5 中编写一个发送电子邮件的应用程序。
我试图避免在我的代码中写满这个内容
$mailer = new Mailer('default');
$mailer->setEmailFormat('both')
->setFrom(['[email protected]' => 'My Company Name'])
->setSender('[email protected]', 'My Company Name')
我不想在每次发送电子邮件时指定发件人/发件人地址([电子邮件受保护])和关联名称“我的公司名称”。否则,它会用不遵循 DRY 原则的相同代码乱扔我的控制器。
根据文档
定义传送配置文件允许您将常用电子邮件设置合并到可重复使用的配置文件中。
它没有说明您存储此配置的位置。它给出了一个例子
使用 Mailer 或数组的上述键的值,如 from、to、cc 等将作为相应方法的第一个参数传递。等效于:
将在您的配置中定义为$mailer->setFrom('[email protected]', 'My Site')
'from' => ['[email protected]' => 'My Site']
实例化时哪个配置文件以及如何传入该文件
new Mailer()
?
哪个配置文件?
如果它是特定于应用程序的并且您已使用骨架进行初始化,则此文件名为
app.php
(config/app.php
)。
正如 配置您的应用程序 (cakephp.org) 所建议的,您可能有不同的文件布局(支持
.php
和 .ini
配置文件)和/或多个文件。配置的设置在 bootstrap.php
中完成,您可以在其中命令使用其他文件(对于特定于具体环境的设置,还有一些关于 app_local.php
的约定)。
邮件程序配置文件在您的配置文件中定义,然后在
Email
键下定义。
'Email' => [
'default' => [
'transport' => 'default',
'from' => '[email protected]',
# ...
],
],
在此“默认”邮件程序配置文件中,您还可以找到
transport
。它的值“默认”(也)与 EmailTransport
配置键相关。它的工作原理相同。
有关邮件程序配置文件和传输密钥的具体设置,请继续阅读,示例后面有链接。
实例化时它是如何传入的
?new Mailer()
通过使用配置文件的名称,例如“默认”。它可以通过 setter 方法或构造函数注入:
$mailer = new Mailer();
$mailer->setProfile('default');
// Or in constructor
$mailer = new Mailer('default');
(示例来自使用 CakePHP > 邮件程序 > 配置)