phuongdev89 / yii2-email-manager
Yii2 邮件管理器
2.1.0
2023-01-10 15:31 UTC
Requires
- php: >=7.1
- baibaratsky/yii2-serialized-attributes-behavior: ~1.1
- mailgun/mailgun-php: ^2.0
- php-http/guzzle6-adapter: *
- phuongdev89/yii2-base: *
- phuongdev89/yii2-cron: *
- phuongdev89/yii2-roxymce: *
- yiisoft/yii2: ~2.0.4
- yiisoft/yii2-swiftmailer: ~2.0.0 | ~2.1.0
- yiisoft/yii2-twig: ^2.2
Suggests
This package is auto-updated.
Last update: 2024-09-19 04:42:12 UTC
README
Composer
安装此扩展的首选方法是通过 Composer。
运行以下命令之一
php composer.phar require --prefer-dist phuongdev89/yii2-email-manager "@dev"
或者
"phuongdev89/yii2-email-manager": "@dev"
将以下内容添加到你的 composer.json
文件的 require 部分。
迁移
迁移执行
php yii migrate --migrationPath=@vendor/phuongdev89/yii2-email-manager/src/migrations
配置
简单配置
'components' => [
'mailer' => [
'class' => 'yii\swiftmailer\Mailer',
'useFileTransport' => false,
'host' => 'smtp.gmail.com',
'username' => 'test@gmail.com',
'password' => '12345678',
'port' => '587',
'encryption' => 'TLS',
],
'emailManager' => [
'class' => '\phuongdev89\email\EmailManager',
'defaultTransport' => 'yiiMailer',
'resendAfter' => 5,//resend after 5 mins if stuck
'tryTime' => 3,//max try time resend
'transports' => [
'yiiMailer' => [
'class' => '\phuongdev89\email\transports\YiiMailer',
],
/*
'mailGun' => [ //Not required
'class' => '\phuongdev89\email\transports\MailGun',
'apiKey' => 'xxx',
'domain' => 'our-domain.net',
],
*/
],
],
],
'modules' => [
'mailer' => [
'class' => 'phuongdev89\email\Module',
'cleanAfter' => 30//clean after days
],
]
高级配置
首先需要安装 phuongdev89/yii2-setting
,在设置模块中创建5条记录
smtp_host
(值:smtp.gmail.com
)smtp_user
(值:test@gmail.com
)smtp_password
(值:12345678
)smtp_port
(值:587
)smtp_encryption
(值:TLS
)
'components' => [
'mailer' => [
'class' => '\phuongdev89\email\swiftmailer\Mailer',
],
'emailManager' => [
'class' => '\phuongdev89\email\components\EmailManager',
'defaultTransport' => 'yiiMailer',
'resendAfter' => 5,//resend after 5 mins if stuck
'tryTime' => 3,//max try time resend
'transports' => [
'yiiMailer' => [
'class' => '\phuongdev89\email\transports\YiiMailer',
],
/*
'mailGun' => [
'class' => '\phuongdev89\email\transports\MailGun',
'apiKey' => 'xxx',
'domain' => 'our-domain.net',
],
*/
],
],
]
'modules' => [
'mailer' => [
'class' => 'phuongdev89\email\Module',
'cleanAfter' => 30//clean after days
],
]
将命令添加到可用的命令列表中。将其放入控制台应用程序配置中
'controllerMap' => [
'email' => '\phuongdev89\email\commands\EmailController',
],
将电子邮件发送守护进程添加到 crontab,可以通过 lockrun 或 run-one 工具(更多信息请参阅 phuongdev89/yii2-cron
)
*/5 * * * * php /your/site/path/yii email/start
用法
##后端访问此 URL
http://backend.yourdomain.com/mailer
或
http://backend.yourdomain.com/index.php?r=mailer
##简单用法
// obtain component instance
$emailManager = EmailManager::getInstance();
// direct send via default transport
$emailManager->send('from@example.com', 'to@example.com', 'test subject', 'test email');
// queue send via default transport
$emailManager->queue('from@example.com', 'to@example.com', 'test subject', 'test email');
// direct send via selected transport
$emailManager->transports['mailGun']->send('from@example.com', 'to@example.com', 'test subject', 'test email');
##高级用法 创建一个快捷名称 welcome_email
。例如
Welcome {{fullname}},
Thanks for registered at {{url}}.
Your username: <b>{{username}}</b>
Your phone: <b>{{phone}}</b>
发送/排队欢迎邮件完成后
// use shortcuts
$user = new User();
$user->fullname = "Test ABC";
$user->username = "testabc";
$user->email = "test@gmail.com";
$user->phone = "0123456789";
...
if($user->save()) {
EmailTemplate::findByShortcut('welcome_email')->queue($user->email, ['fullname' => $user->fullname, 'username' => $user->username, 'ur' => 'http://domain.com', 'phone' => $user->phone]);
}