Servidor SMTP (biblioteca) para receber e -mails, escritos em PHP puro. Esta biblioteca fornece uma interface para o protocolo do lado do servidor SMTP com PHP. Ele cria um objeto da classe de ZendMailMessage para cada email recebido e entrega esse objeto a uma função PHP personalizada para processamento adicional. O projeto está no status beta, por isso não é recomendado para o uso da produção.
O d em SMTPd significa Daemon. Esse script pode ser executado em segundo plano como qualquer outro processo daemon. Não é para correr como aplicativo web.
Acredite ou não, o email ainda é o recurso assassino da Internet . Existem toneladas de projetos como Phpmailer: enviar e -mails programaticamente (com PHP). Mas não há tantos para receber e -mails do SMTP.
Com esta interface, você pode fazer algo assim para os usuários do seu aplicativo:
+------+ +------------------------+ +-------+ +--------------+
| User +---> | MUA (like Thunderbird) +---> | SMTPd +---> | Your PHP App |
+------+ +------------------------+ +-------+ +--------------+
Isso é útil quando você tem um aplicativo de mensagens escrito no PHP, mas nenhuma interface gráfica do usuário para ele. Portanto, sua interface gráfica do usuário pode ser qualquer cliente de email. Thunderbird, por exemplo.
O projeto descreve conforme descrito em meu post sobre a colaboração de software de código aberto.
ZendMail por uma solução melhor. O método preferido de instalação é via Packagist e Composer. Execute o seguinte comando para instalar o pacote e adicione -o como um requisito ao Composer.json:
composer require thefox/smtpd No momento, o servidor aceita todos os emails recebidos. Você decide o que acontece com os e-mails recebidos adicionando Event S ao objeto Server ( $server->eventAdd($event) ). O servidor pode lidar com determinados eventos. Cada evento será executado em um determinado gatilho. Mesmo se você não adicionar eventos ao servidor, ele aceita todos os emails recebidos.
No momento, existem dois gatilhos de eventos.
TRIGGER_NEW_MAIL : será acionado quando um cliente terminar de transmitir um novo email.TRIGGER_AUTH_ATTEMPT : será acionado quando um cliente quiser autenticar. Retorne um booleano da função de retorno de chamada se a autenticação foi bem -sucedida ou não. Consulte também example.php Arquivo para obter exemplos completos.
$ server = new Server (...);
$ event = new Event (Event:: TRIGGER_NEW_MAIL , null , function ( Event $ event , $ from , $ rcpts , $ mail ){
// Do stuff: handle email, ...
});
$ server -> addEvent ( $ event );
$ server -> loop (); $ server = new Server (...);
$ event = new Event (Event:: TRIGGER_AUTH_ATTEMPT , null , function ( Event $ event , $ type , $ credentials ): bool {
// Do stuff: Check credentials against database, ...
return true ;
});
$ server -> addEvent ( $ event );
$ server -> loop (); $ server = new Server (...);
// Set up server here.
// Add Events, etc, ...
while ( myApplicationRuns ()){
// Do stuff your application needs.
// ...
// Run main SMTPd loop, once.
$ server -> run ();
usleep ( 10000 ); // Never run a main thread loop without sleep. Never!
}