1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
//! rmilter //! ======= //! //! **rmilter** is a Rust crate that allows to connect to MTA services like sendmail or postfix using the milter protocol. //! //! This library uses pure safe Rust code and doesn't require external libraries like libmilter. //! //! Features //! -------- //! //! - Connect to MTA services using the milter protocol (IPv4/IPv6 only for now) //! - Define which messages should be transferred //! - Automatically decode `base64` and `quoted-printable` values //! - Uses Rust's type system to prevent misusing the milter protocol //! //! Usage //! ----- //! //! This crate is [on crates.io](https://crates.io/crates/rmilter) and can be used by adding `rmilter` to your dependencies in your project's `Cargo.toml`. //! //! ```toml //! [dependencies] //! rmilter = "0.1" //! ``` //! //! Example //! ------- //! //! ```no_run //! use rmilter::accept_reject_action::AcceptRejectAction; //! use rmilter::message_handler::MessageHandler; //! use rmilter::milter_message::MilterProtocol; //! use rmilter::milter_builder::MilterBuilder; //! //! struct MyMessageHandler {} //! //! impl MessageHandler for MyMessageHandler { //! fn header(&mut self, name: &str, value: &str) -> AcceptRejectAction { //! println!("name: {}, value: {}", name, value); //! AcceptRejectAction::Continue //! } //! } //! //! fn main() { //! let mut handler = MyMessageHandler {}; //! let protocol = MilterProtocol::default(); //! let mut milter = MilterBuilder::new(&mut handler) //! .set_protocol(protocol) //! .build(); //! //! milter //! .run("127.0.0.1:31337") //! .expect("Failed to start milter"); //! } //! ``` //! //! Status //! ------ //! //! **rmilter** can be used to connect to MTA services and receive messages. It is also possible to easily accept or reject a mail (using AcceptRejectAction). //! //! Currently, functionality for manipulating the mail (add header, recipients and so on) is not yet supported, but will be in a future release. // Set proper hmtl root for docs.rs #![doc(html_root_url = "https://docs.rs/rmilter/0.1.0")] #[macro_use] extern crate bitflags; #[macro_use] extern crate lazy_static; pub mod accept_reject_action; pub mod message_handler; pub mod milter; pub mod milter_builder; pub mod milter_error; pub mod milter_message;