extern crate lettre; use std::env::temp_dir; use std::fs::File; use std::fs::remove_file; use std::io::Read; use lettre::transport::file::FileEmailTransport; use lettre::transport::EmailTransport; use lettre::email::{EmailBuilder, SendableEmail}; #[test] fn file_transport() { let mut sender = FileEmailTransport::new(temp_dir()); let email = EmailBuilder::new() .to("root@localhost") .from("user@localhost") .body("Hello World!") .subject("Hello") .build() .unwrap(); let result = sender.send(email.clone()); assert!(result.is_ok()); let message_id = email.message_id(); let file = format!("{}/{}.txt", temp_dir().to_str().unwrap(), message_id); let mut f = File::open(file.clone()).unwrap(); let mut buffer = String::new(); let _ = f.read_to_string(&mut buffer); assert_eq!(buffer, format!("{}: from= to=\n{}", message_id, email.message())); remove_file(file).unwrap(); }