wambacom / smtpd
Fork自thefox/smtpd。使用PHP编写的SMTP服务器(库)。在这个分支中,我们使用eXorus/php-mime-mail-parser作为邮件解析器,而不是zend::message。
Requires
- php: >=5.3
- exorus/php-mime-mail-parser: 1.*
- liip/process-manager: ~1.0
- symfony/console: ~2.5
- symfony/filesystem: ~2.5
- zendframework/zend-mail: ~2.3
Requires (Dev)
- phpmailer/phpmailer: ~5.2
- phpunit/phpunit: ~4.1
- thefox/phpcsrs: ~1.0
- thefox/utilities: ~1.1
This package is not auto-updated.
Last update: 2024-09-18 07:24:03 UTC
README
使用PHP编写的SMTP服务器(库)。这个库只提供了一个用于SMTP协议的PHP接口。你需要自己交付邮件。
为什么选择这个项目?
信不信由你,电子邮件仍然是互联网的杀手级功能。有大量的项目,比如PHPMailer:使用PHP程序发送邮件。但接收来自SMTP的邮件的项目并不多。
使用这个接口,你可以为你的应用用户做以下事情
User <-> MUA (like Thunderbird) <-> SMTP <-> Your PHP App
这在你有一个用PHP编写的消息应用但没有任何图形用户界面时很有用。因此,你的图形用户界面可以是任何电子邮件客户端。例如Thunderbird。
安装
首选的安装方法是使用 Packagist 和 Composer。运行以下命令来安装包并将其添加到composer.json的要求中
composer.phar require "thefox/smtpd=~0.1"
独立服务器
-
从GitHub克隆项目。
git clone https://github.com/TheFox/smtpd.git
-
安装依赖项。
make
-
要启动一个独立服务器,你可以在shell中键入以下命令
./application.php server -d
要显示使用选项,请使用
-h
./application.php server -h
你可以更改IP和端口。默认端口是20025。
./application.php server -a 0.0.0.0 -p 25
注意: 独立服务器仅用于测试。如果你想将其用于生产,你需要定义一个安全的/交付函数。请参阅下面的示例。
用法
使用这个库在你的项目中提供IMAP服务器。
<?php require_once __DIR__.'/vendor/autoload.php'; use TheFox\Smtp\Server; use TheFox\Smtp\Event; $server = new Server('127.0.0.1', 20025); $server->init(); $server->listen(); $event1 = new Event(Event::TRIGGER_MAIL_NEW, null, function($event, $from, $rcpt, $mail){ // Do stuff: DNS lookup the MX record for the recipient's domain, ... }); $server->eventAdd($event1); $server->loop();
loop()
仅仅是一个执行了 run()
的循环。因此,你需要在你的项目中执行 run()
以保持SMTP服务器更新。
RFC 821实现
完整实现
- 3.5 打开和关闭
不完全实现
- 3.1 邮件
- 4.1.1 命令语义
- HELO
- RCPT
- DATA
- NOOP
- QUIT
RFC 1651实现
完整实现
- 4.1.1 第一条命令
- 4.5 扩展服务器返回的错误响应
相关项目
贡献
欢迎为这个项目做出贡献。在 https://github.com/TheFox/smtpd 上 fork 这个项目。你应该阅读GitHub的 如何 Fork 一个仓库。
许可证
版权所有 (C) 2014 Christian Mayer http://fox21.at
本程序是免费软件:您可以自由分发和/或修改它,具体请参阅由自由软件基金会发布的GNU通用公共许可证的条款,许可证版本3或更高版本。
本程序分发的目的是希望它能有所用途,但没有任何保证;甚至不包括对商誉或特定用途适用性的暗示保证。有关更多信息,请参阅GNU通用公共许可证。您应该已经随本程序一起收到GNU通用公共许可证的副本。如果没有,请参阅https://gnu.ac.cn/licenses/。