first commit
This commit is contained in:
@@ -0,0 +1,77 @@
|
||||
# kiri-mail-server
|
||||
|
||||
基于 PHP + Swoole 的生产级邮件服务器(Phase 1: SMTP 接收邮件)。
|
||||
|
||||
## 功能特性 (Phase 1)
|
||||
|
||||
- **SMTP 协议**: 完整实现 RFC 5321,支持 EHLO/HELO、MAIL FROM、RCPT TO、DATA
|
||||
- **ESMTP 扩展**: 8BITMIME、PIPELINING、SIZE、AUTH
|
||||
- **认证**: AUTH LOGIN / AUTH PLAIN
|
||||
- **存储**: Maildir 格式存储,原子写入
|
||||
- **kiri-core 集成**: 继承 AbstractProcess,作为自定义进程运行
|
||||
|
||||
## 快速开始
|
||||
|
||||
### 安装
|
||||
|
||||
```bash
|
||||
composer require game-worker/kiri-mail-server
|
||||
```
|
||||
|
||||
### 配置
|
||||
|
||||
```php
|
||||
// config/mail.php
|
||||
return [
|
||||
'smtp' => [
|
||||
'host' => '0.0.0.0',
|
||||
'port' => 25,
|
||||
'hostname' => 'mail.example.com',
|
||||
],
|
||||
'storage' => [
|
||||
'path' => '/data/mail',
|
||||
],
|
||||
'auth' => [
|
||||
'users' => [
|
||||
'user@example.com' => 'password123',
|
||||
'admin@example.com' => 'admin456',
|
||||
],
|
||||
],
|
||||
'domains' => [
|
||||
'local' => ['example.com'],
|
||||
],
|
||||
];
|
||||
```
|
||||
|
||||
### 集成到 kiri-core
|
||||
|
||||
```php
|
||||
// config/servers.php
|
||||
'process' => [
|
||||
\Kiri\MailServer\SmtpServerProcess::class,
|
||||
],
|
||||
```
|
||||
|
||||
### 测试 SMTP 连通性
|
||||
|
||||
```bash
|
||||
# 连接 SMTP 服务器
|
||||
telnet localhost 25
|
||||
|
||||
# 发送测试邮件
|
||||
EHLO test
|
||||
MAIL FROM:<sender@example.com>
|
||||
RCPT TO:<user@example.com>
|
||||
DATA
|
||||
From: sender@example.com
|
||||
To: user@example.com
|
||||
Subject: Test
|
||||
|
||||
Hello World
|
||||
.
|
||||
QUIT
|
||||
```
|
||||
|
||||
## 架构
|
||||
|
||||
详见 [DESIGN.md](./DESIGN.md)
|
||||
Reference in New Issue
Block a user