mailspy/src/main.rs

30 lines
676 B
Rust

mod http;
mod mail;
mod smtp;
use clap::Parser;
#[derive(Parser, Debug)]
#[clap(author, version, about, long_about = None)]
struct Args {
#[clap(short, long, value_parser, default_value = "7777")]
http_port: u16,
#[clap(short, long, value_parser, default_value = "7778")]
smtp_port: u16,
}
#[tokio::main]
async fn main() {
let args = Args::parse();
tracing_subscriber::fmt::init();
let mailbox = mail::Mailbox::new();
smtp::server(mailbox.clone(), args.smtp_port).await.unwrap();
http::server(mailbox.clone(), args.http_port).await.unwrap();
tokio::signal::ctrl_c()
.await
.expect("failed to listen for event");
}