mambaru/smtpd

基于thefox/smtpd的分支。使用PHP编写的SMTP服务器(库)。在这个分支中,我们使用eXorus/php-mime-mail-parser作为邮件解析器,而不是zend::message。

0.1.2 2014-09-09 10:39 UTC

This package is not auto-updated.

Last update: 2024-09-24 07:22:08 UTC


README

使用PHP编写的SMTP服务器(库)。此库仅提供SMTP协议的PHP接口。您需要自行投递邮件。

为什么选择这个项目?

信不信由你,电子邮件仍然是互联网的杀手级功能。有大量类似PHPMailer的项目:用于使用PHP程序发送电子邮件。但是,用于从SMTP接收电子邮件的项目并不多。

使用这个接口,您可以为您应用的用户执行以下操作

User <-> MUA (like Thunderbird) <-> SMTP <-> Your PHP App

这对于您使用PHP编写的消息应用但没有图形用户界面的情况非常有用。因此,您的图形用户界面可以是任何电子邮件客户端。例如,Thunderbird

安装

首选的安装方法是使用PackagistComposer。运行以下命令安装包并将其添加到composer.json的要求中

composer.phar require "thefox/smtpd=~0.1"

独立服务器

  1. 从GitHub克隆项目。

    git clone https://github.com/TheFox/smtpd.git

  2. 安装依赖项。

    make

  3. 要在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
    • MAIL
    • 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/