wolxXx / imapd

IMAP server written in pure PHP.

Home Page:http://blog.fox21.at/2014/08/07/imapd.html

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

IMAPd

IMAP server (library) written in pure PHP.

Why this project?

Believe it or not, email is still the killer feature of the Internet. There are tons of projects for accessing and fetching emails from an IMAP/POP3 server. But there are not so many providing a programmatically interface to serve emails to an email client.

With this interface you can do something like this for your app users:

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

This is useful when you have a messaging application written in PHP but no graphical user interface for it. So your graphical user interface can be any email client. Thunderbird for instance.

Installation

The preferred method of installation is via Packagist and Composer. Run the following command to install the package and add it as a requirement to composer.json:

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

Stand-alone server

  1. Clone project from GitHub.

     git clone https://github.com/TheFox/imapd.git
    
  2. Install dependencies.

     make
    
  3. To start a stand-alone server you can type the following command in your shell:

     ./application.php server -d
    

    To show the usage options use -h:

     ./application.php server -h
    

    You can change the IP and port. Default port is 20143.

     ./application.php server -a 0.0.0.0 -p 143
    

RFC 3501 Implementation

Complete implementation

  • 6.1.2 NOOP Command
  • 6.1.3 LOGOUT Command
  • 6.4.1 CHECK Command
  • 6.4.7 COPY Command
  • 7.1.1 OK Response
  • 7.1.2 NO Response
  • 7.1.3 BAD Response
  • 7.1.5 BYE Response
  • 7.4.1 EXPUNGE Response

Incomplete implemention

  • 2.3.1.1 Unique Identifier (UID) Message Attribute
  • 2.3.1.2 Message Sequence Number Message Attribute
  • 2.3.2 Flags Message Attribute
  • 6.1.1 CAPABILITY Command
  • 6.2.2 AUTHENTICATE Command
  • 6.2.3 LOGIN Command
  • 6.3.1 SELECT Command
  • 6.3.6 SUBSCRIBE Command
  • 6.3.7 UNSUBSCRIBE Command
  • 6.3.8 LIST Command
  • 6.3.9 LSUB Command
  • 6.3.11 APPEND Command
  • 6.4.2 CLOSE Command
  • 6.4.4 SEARCH Command
  • 6.4.5 FETCH Command
  • 6.4.6 STORE Command
  • 6.4.8 UID Command
  • 7.1.4 PREAUTH Response
  • 7.2.1 CAPABILITY Response
  • 7.2.2 LIST Response
  • 7.2.3 LSUB Response
  • 7.2.5 SEARCH Response
  • 7.3.1 EXISTS Response
  • 7.3.2 RECENT Response
  • 7.4.2 FETCH Response

TODO

  • Some tasks are commented with NOT_IMPLEMENTED.
  • TODO are to be complete the PHP Code Sniffer tests before releasing a new version.

Alternatives for Zend\Mail

Related Links

Related Projects

Contribute

You're welcome to contribute to this project. Fork this project at https://github.com/TheFox/imapd. You should read GitHub's How to Fork a Repo.

Project Links

License

Copyright (C) 2014 Christian Mayer http://fox21.at

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

About

IMAP server written in pure PHP.

http://blog.fox21.at/2014/08/07/imapd.html


Languages

Language:PHP 99.2%Language:Makefile 0.6%Language:Shell 0.3%