SMTP Server (Perpustakaan) untuk menerima email, ditulis dalam PHP murni. Perpustakaan ini menyediakan antarmuka ke protokol sisi server SMTP dengan PHP. Ini membuat objek kelas ZendMailMessage untuk setiap email yang masuk dan menyerahkan objek ini ke fungsi PHP khusus untuk pemrosesan lebih lanjut. Proyek ini dalam status beta, jadi tidak disarankan untuk penggunaan produksi.
d dalam SMTPd adalah singkatan dari Daemon. Skrip ini dapat berjalan di latar belakang seperti proses daemon lainnya. Ini tidak dimaksudkan untuk berjalan sebagai aplikasi web.
Percaya atau tidak, email masih menjadi fitur pembunuh dari internet . Ada banyak proyek seperti PHPMailer: untuk mengirim email secara terprogram (dengan PHP). Tetapi tidak banyak yang menerima email dari SMTP.
Dengan antarmuka ini Anda dapat melakukan hal seperti ini untuk pengguna aplikasi Anda:
+------+ +------------------------+ +-------+ +--------------+
| User +---> | MUA (like Thunderbird) +---> | SMTPd +---> | Your PHP App |
+------+ +------------------------+ +-------+ +--------------+
Ini berguna ketika Anda memiliki aplikasi pesan yang ditulis dalam PHP tetapi tidak ada antarmuka pengguna grafis untuk itu. Jadi antarmuka pengguna grafis Anda dapat berupa klien email. Thunderbird misalnya.
Proyek ini menguraikan seperti yang dijelaskan dalam posting blog saya tentang kolaborasi perangkat lunak open source.
ZendMail dengan solusi yang lebih baik. Metode instalasi yang disukai adalah melalui Packagist dan Composer. Jalankan perintah berikut untuk menginstal paket dan menambahkannya sebagai persyaratan untuk composer.json:
composer require thefox/smtpd Saat ini server menerima semua email yang masuk. Anda memutuskan apa yang terjadi dengan email yang masuk dengan menambahkan Event S ke objek Server ( $server->eventAdd($event) ). Server dapat menangani peristiwa tertentu. Setiap acara akan dieksekusi pada pemicu tertentu. Bahkan jika Anda tidak menambahkan acara apa pun ke server, ia menerima semua email yang masuk.
Saat ini ada dua pemicu acara.
TRIGGER_NEW_MAIL : Akan dipicu ketika klien selesai mengirimkan email baru.TRIGGER_AUTH_ATTEMPT : akan dipicu ketika klien ingin mengotentikasi. Mengembalikan boolean dari fungsi panggilan balik apakah otentikasi berhasil atau tidak. Lihat juga file example.php untuk contoh lengkap.
$ 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!
}