masterflash-ru / emailer
生成和发送HTML邮件
dev-master / 0.0.1.x-dev
2023-01-08 07:35 UTC
Requires
- php: ^7.2 || ^8.0
- laminas/laminas-mail: ^2.8
- masterflash-ru/ado: ^2.2
This package is auto-updated.
Last update: 2024-09-08 11:30:57 UTC
README
生成HTML邮件并发送给收件人的服务。生成过程类似于框架中的标准渲染。
将进行一系列改进,例如,选择邮件发送适配器类型等。
安装: composer require masterflash-ru/emailer
对于后台管理,提供编辑数据库记录的接口 - "从网站编辑邮件模板"。
安装后,请从data文件夹中加载数据库备份。
创建Emailer控制器插件
//обращение в контроллере $this->Emailer($nameOrModel,$values, $toEmails, $options); //если ничего не передавать, возращает сам объект $emailer=$this->Emailer();
$nameOrModel - ViewModel实例,如在控制器中,或在ZF3术语中为模板(输出脚本)的名称;首先在数据库中按名称搜索,如果找不到,则在文件中搜索。文件路径的指定方式与ZF3中相同;
$values - 包含模板值的数组,但如果$nameOrModel是字符串;
$toEmails - 收件人Email字符串或数组;
$options - 选项,数组,键:subject - 消息主题,mailfrom - 邮件回复地址
控制器插件Emailer的功能
在应用程序配置中应指定数据库连接配置'DefaultSystemDb',例如;
return [ "databases"=>[ //соединение с базой + имя драйвера 'DefaultSystemDb' => [ 'driver'=>'MysqlPdo', //"unix_socket"=>"/tmp/mysql.sock", "host"=>"localhost", 'login'=>"login", "password"=>"password", "database"=>"simba4", "locale"=>"ru_RU", "character"=>"utf8" ], ], ..... ];
重要提示
为了在HTML邮件中包含图片,应指定绝对地址,使用View助手ServerUrl(),例如;
<img src="<?=$this->ServerUrl($this->$this->basePath("image/pic.jpg"))?>" alt="">
在应用程序配置中声明DefaultSystemDb以与数据库交互
...... "databases"=>[ //соединение с базой + имя драйвера 'DefaultSystemDb' => [ 'driver'=>'MysqlPdo', //"unix_socket"=>"/tmp/mysql.sock", "host"=>"localhost", 'login'=>"root", "password"=>"**********", "database"=>"simba4", "locale"=>"ru_RU", "character"=>"utf8" ], ], .....
与缓存交互的方式类似
..... 'caches' => [ 'DefaultSystemCache' => [ 'adapter' => [ 'name' => Filesystem::class, 'options' => [ // Store cached data in this directory. 'cache_dir' => './data/cache', // Store cached data for 3 hour. 'ttl' => 60*60*2 ], ], 'plugins' => [ [ 'name' => Serializer::class, 'options' => [ ], ], ], ], ], .....