wambacom/smtpd

Fork自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-18 07:24:03 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/