use log::{info, Level}; use opensmtpd::{handlers, report, Entry, SmtpIn, SmtpdLogger}; #[derive(Clone, Default)] struct MyContext { nb: usize, } #[report(Any)] fn on_report(ctx: &mut MyContext, entry: &Entry) { ctx.nb += 1; info!("Event received: {}, {}", entry.session_id, ctx.nb); } fn main() { let _ = SmtpdLogger::new().set_level(Level::Debug).init(); SmtpIn::new().event_handlers(handlers!(on_report)).run(); }