germania-kg / mailer
邮件和SwiftMailer服务的Pimple服务提供者。
1.3.2
2022-05-30 13:47 UTC
Requires
- php: ^5.6|^7.0|^8.0
- germania-kg/swiftmailer-callable: ^1.0
- pimple/pimple: ^3.0
- psr/log: ^1.0
- swiftmailer/swiftmailer: ^5.4|^6.0
Requires (Dev)
- php-coveralls/php-coveralls: ^2.0
- phpspec/prophecy-phpunit: ^2.0
- phpunit/phpunit: ^9.0
This package is auto-updated.
Last update: 2024-09-16 12:12:08 UTC
README
邮件和SwiftMailer服务的Pimple服务提供者。
安装
$ composer require germania-kg/mailer
注册
<?php use Germania\Mailer\MailerServiceProvider; $dic = new \Pimple\Container; $dic->register( new MailerServiceProvider );
配置
配置是一个数组,包含典型的邮件配置字段,每个字段都是空的。
您可以通过以下方式从Pimple容器中检索配置
$dic->register( new MailerServiceProvider ); $config = $dic['Mailer.Config']; print_r($config);
(
[smtp] =>
[port] =>
[ssl] =>
[user] =>
[pass] =>
[from_name] =>
[from_mail] =>
[to] =>
[subject] =>
)
在实例化时配置
将自定义配置传递给MailerServiceProvider构造函数。像通常一样将其注册到Pimple容器中。
$mailer_service_provider = new MailerServiceProvider([ 'from_name' => 'John Doe', 'from_mail' => 'me@test.com' ]); $dic->register( $mailer_service_provider ); $config = $dic['Mailer.Config']; print_r($config);
(
[smtp] =>
[port] =>
[ssl] =>
[user] =>
[pass] =>
[from_name] => John Doe
[from_mail] => me@test.com
[to] =>
[subject] =>
)
在运行时配置
两种方式
- 在将ServiceProvider注册到Pimple之后(即扩展
Mailer.Config
服务定义) - 在注册之前,在
Mailer.Config
服务定义中预定义配置
在注册到Pimple之后
$dic->register( new MailerServiceProvider() ); $dic->extend('Mailer.Config', function($default_config, $dic) { $new_config = array_merge($default_config, [ 'from_name' => 'John Doe', 'from_mail' => 'me@test.com' ]); return $new_config; });
在注册到Pimple之前
$dic['Mailer.Config'] = function($dic) { return array( 'from_name' => 'John Doe', 'from_mail' => 'me@test.com' ); }; $dic->register( new MailerServiceProvider() );
用法
设置MailerServiceProvider
$dic->register( new MailerServiceProvider([ 'from_name' => 'John Doe', 'from_mail' => 'me@test.com', 'to' => 'admin@test.com', 'subject' => 'Default subject' ]));
SwiftMailerCallable
<?php use Germania\SwiftMailerCallable\SwiftMailerCallable; // Grab the Mailer callable $mailer = $dic[SwiftMailerCallable::class]; // DEPRECATED service name: $mailer = $dic['Mailer.Callable']; // Send with subject and mail body $result = $mailer("The subject", "<p>The mailtext</p>"); # Override receipient address # previosuly set in Mailer.Config $result = $mailer("The subject", "<p>The mailtext</p>", "admin@test.com");
SwiftMailer
见https://swiftmailer.symfony.com/docs/introduction.html
<?php use Germania\Mailer\SwiftMessageFactory; use \Swift_Mailer; // Grab Swiftmailer $swift_mailer = $dic[Swift_Mailer::class]; // Setup message $message_factory = $dic[SwiftMessageFactory::class]; $message = $message_factory->createMessage(); $message->setBody("This is the mail body"); // This optional as we set it with Configuration $message->setSubject( "Custom subject line" ); // Send message $result = $swift_mailer->send( $message ));
开发
$ git clone https://github.com/GermaniaKG/Mailer.git
$ cd Mailer
$ composer install
单元测试
要么复制phpunit.xml.dist
到phpunit.xml
并根据自己的需求进行修改,要么保持原样。运行PhpUnit测试或composer脚本,如下所示
$ composer test # or $ vendor/bin/phpunit