hashemi / too-mailable
一个基于Laravel的包,用于在运行时更改`Mail`传输和其凭证。此包将提供一个简单易用的`Mailable`抽象层。目前此包仅支持SMTP。
dev-main
2022-11-02 07:16 UTC
Requires
- hashemi/valideto: dev-master
- symfony/amazon-mailer: ^6.1.0
- symfony/google-mailer: ^6.1.0
- symfony/mailchimp-mailer: ^6.1.0
- symfony/mailgun-mailer: ^6.1.0
- symfony/mailjet-mailer: ^6.1.0
- symfony/oh-my-smtp-mailer: ^6.1.0
- symfony/postmark-mailer: ^6.1.0
- symfony/sendgrid-mailer: ^6.1.0
- symfony/sendinblue-mailer: ^6.1.0
Requires (Dev)
- orchestra/testbench: 8.0.x-dev
- overtrue/phplint: 8.1.x-dev
- phpunit/phpunit: ^9.5.10
- symfony/var-dumper: 6.2.x-dev
This package is auto-updated.
Last update: 2024-09-30 01:30:33 UTC
README
一个基于Laravel的包,用于在运行时更改Mail
传输和其凭证。此包将提供一个简单易用的Mailable
抽象层。目前此包仅支持SMTP。
安装
您可以从composer开始使用它。进入您的终端,从项目根目录运行此命令。
composer require hashemi/laravel-too-mailable
- 如果您正在使用Laravel,则Laravel将自动发现此包。如果它没有发现包,请在
config/app.php
的providers数组中添加以下提供者。
Hashemi\TooMailable\TooMailableServiceProvider::class
用法
此包将提供TooMailable
抽象类,您需要使用您的邮件类。此抽象类有两个抽象方法。
-
transport(): string|EsmtpTransport
此方法将返回由字符串或继承自EsmtpTransport
的定制传输类支持的传输。 -
credentials(): array
此方法将返回当前传输的必要凭证。
示例
use Hashemi\TooMailable\TooMailable; class SendVerificatioMail extends TooMailable { //... public function transport() { return 'amazon'; } public function credentials() { return [ 'username' => 'my-user', 'password' => 'password-123', 'region' => 'us-east-2' ]; } }
此包还包含一个配置,其中每个内置传输类都已配置。如果有人需要覆盖该传输,他们可以通过从供应商发布配置来轻松完成,配置文件将存储在您的应用程序中的config/too-mailable.php
。
示例
use Hashemi\TooMailable\Transports\{ Amazon, Google, Mailchimp, Mailgun, Mailjet, OhMySmtp, Postmark, Sendgrid, SendInBlue }; return [ 'transports' => [ 'amazon' => Amazon::class, 'google' => Google::class, 'mailchimp' => Mailchimp::class, 'mailgun' => Mailgun::class, 'mailjet' => Mailjet::class, 'postmark' => Postmark::class, 'sendgrid' => Sendgrid::class, 'sendinblue' => SendInBlue::class, 'oh-my-smtp' => OhMySmtp::class, ], ];
因此,如果您想更改现有传输,则
return [ 'transports' => [ //... 'amazon' => MyNewAmazonTransport::class, ], ];
或者,如果您想添加新传输,则
return [ 'transports' => [ //... 'converkit' => MyNewConvertKit::class ], ];
但MyNewConvertKit
类应实现Hashemi\TooMailable\Interfaces\TransportInterface
接口。凭证将通过MyNewConvertKit
类的构造函数传递。
贡献
欢迎提交拉取请求。对于任何更改,请首先打开一个问题来讨论您想要更改的内容。