aaronschmied / laravel-smtpd
用于Laravel接收电子邮件的SMTP服务器。
Requires
- php: ^7.1
- ext-sockets: >=0
- goetas/to-swift-mime-parser: ^2.2
- illuminate/auth: ^5.8
- illuminate/config: ^5.8
- illuminate/console: ^5.8
- illuminate/events: ^5.8
- illuminate/log: ^5.8
- illuminate/mail: ^5.8
- illuminate/queue: ^5.8
- illuminate/support: ^5.8
- psr/log: ^1.0
- symfony/options-resolver: ^3.3
- zendframework/zend-mail: ^2.3
This package is auto-updated.
Last update: 2022-08-06 00:17:58 UTC
README
这是一个基本的SMTP服务器,用于使用Laravel接收电子邮件。
本包仍在开发中,使用时请自行承担风险
注意
本包包含来自Christian Mayer修改过的源代码。具体包括thefox/network和thefox/smtpd两个包。这两个包均采用GNU通用公共许可证第3版发布。
使用方法
使用以下命令通过composer安装此包:
composer require aaronschmied/laravel-smtpd
如果您正在运行Laravel 5.5或更高版本,服务提供器将自动被发现。否则,请将以下提供器添加到您的app.php
文件中的应用程序提供器:
'providers' => [ ... \Smtpd\Providers\SmtpdServiceProvider::class, ],
使用以下命令发布配置文件:
php artisan vendor:publish --provider="Smtpd\Providers\SmtpdServiceProvider"
这将在您的配置目录中创建smtpd.php
文件。
配置
interface
& port
默认情况下,服务器在任何接口(0.0.0.0
)上监听端口25
。
hostname
定义服务器的主机名。在生产模式下,这应该是您服务器的FQDN。
auth
包含认证的配置选项。
handler
处理类检查从客户端提交的用户名/密码组合是否有效。
您可以通过扩展基本处理类Smtpd\Auth\Handler
来在此处提供自己的处理程序。
如果为空,将使用配置的守卫创建一个守卫处理程序。
guard
仅在处理程序为空时使用守卫。
本包提供了一个集成的smtp守卫驱动程序。要使用此驱动程序,编辑您的auth.php
配置文件,并按以下方式添加守卫配置:
'guards' => [ ... 'smtp' => [ 'driver' => 'smtp', 'username_field' => 'email', 'provider' => 'users', ], ],
提供者可以是您的配置中定义的任何用户提供者。在此示例中,已配置默认的eloquent用户提供者,其中电子邮件字段用作smtp用户名。
authorize_recipients
此处理程序检查用户是否可以向指定的收件人发送消息。
默认情况下,所有收件人都可以使用Smtpd\Auth\AuthorizeAllRecipients::class
类允许。
如果您只想允许认证用户发送消息,创建一个新的处理程序,实现Smtpd\Contracts\AuthorizesRecipients
接口。
context_options
在这里您可以定义套接字的附加选项。
默认情况下,套接字配置了使用STARTTLS加密连接时提供自签名证书的选项。
有关选项的更多信息,请参阅此处。
接收消息
要接收消息并从中处理,创建一个对Smtpd\Events\MessageRecieved
事件的监听器。
该事件包含用户(如果已认证)以及Smtpd\Message
对象。
Smtpd\Message
也可以使用makeMailable()
方法创建一个Mailable
对象。
启动监听器
使用命令行
要开始监听传入的连接,运行以下命令
php artisan smtpd:listen
使用服务器管理器
您还可以通过依赖容器中的Smtpd\ServerManager
类启动服务器。
resolve(Smtpd\ServerManager::class) ->run();
从这里,您可以将消息保存到数据库中,使用Laravel Mailer将其发送到另一个服务器,或者只是忽略它... ¯\_(ツ)_/¯
许可
GPL-3.0
版权 © 2019 Aaron Schmied schmied.dev
查看LICENSE
包含以下软件包的源代码
thefox/network → 版权 © 2017 Christian Mayer fox21.at
thefox/smtpd → 版权 © 2014 Christian Mayer fox21.at