diff --git a/src/mailer/header.rs b/src/mailer/header.rs index 6b2d841..b0e9ad2 100644 --- a/src/mailer/header.rs +++ b/src/mailer/header.rs @@ -47,7 +47,7 @@ pub enum Header { /// `Reply-To` ReplyTo(Address), /// `Sender` - Sender(String), + Sender(Address), /// `Date` Date(Tm), /// `Subject` @@ -108,6 +108,9 @@ impl Header { #[cfg(test)] mod test { use super::Header; + use mailer::address::Address; + + use time::{at_utc, Timespec}; #[test] fn test_new() { @@ -123,5 +126,18 @@ mod test { format!("{}", Header::new("From", "me")), "From: me".to_string() ); + assert_eq!( + format!("{}", Header::To(Address::new("me@example.com", Some("My Name")))), + "To: My Name ".to_string() + ); + assert_eq!( + format!("{}", Header::Subject("Test subject".to_string())), + "Subject: Test subject".to_string() + ); + let time = at_utc(Timespec::new(1234567890, 54321)); + assert_eq!( + format!("{}", Header::Date(time)), + "Date: Fri, 13 Feb 2009 23:31:30 GMT".to_string() + ); } } diff --git a/src/mailer/mod.rs b/src/mailer/mod.rs index 99874d8..a650a10 100644 --- a/src/mailer/mod.rs +++ b/src/mailer/mod.rs @@ -100,6 +100,13 @@ impl Email { ); } + /// Adds a `Sender` header + pub fn sender(&mut self, address: A) { + self.headers.push( + Header::Sender(address.to_address()) + ); + } + /// Adds a `Subject` header pub fn subject(&mut self, subject: &str) { self.headers.push(