Crates.io | rmilter |
lib.rs | rmilter |
version | 0.2.0 |
source | src |
created_at | 2020-09-29 18:25:34.330319 |
updated_at | 2020-11-24 18:54:02.200975 |
description | A rust-only crate for connecting and using milter functionality. |
homepage | https://github.com/arnej/rmilter |
repository | https://github.com/arnej/rmilter.git |
max_upload_size | |
id | 294219 |
size | 53,238 |
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.
base64
and quoted-printable
valuesThis crate is on crates.io and can be used by adding rmilter
to your dependencies in your project's Cargo.toml
.
[dependencies]
rmilter = "0.1"
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::new(false, false, false, false, false, false, false);
let mut milter = MilterBuilder::new(&mut handler)
.set_protocol(protocol)
.build();
milter
.run("127.0.0.1:31337")
.expect("Failed to start milter");
}
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.