diff --git a/examples/client.rs b/examples/client.rs index 9fef801..6f7be88 100644 --- a/examples/client.rs +++ b/examples/client.rs @@ -7,6 +7,8 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. +#![feature(phase)] #[phase(plugin, link)] extern crate log; + extern crate smtp; extern crate getopts; use std::io::stdin; @@ -14,22 +16,26 @@ use std::io::net::tcp::TcpStream; use std::string::String; use std::io::net::ip::Port; use std::os; -use smtp::client::Client; use getopts::{optopt,optflag,getopts,OptGroup,usage}; -fn sendmail(source_address: String, recipient_addresses: Vec, message: String, server: String, port: Option, my_hostname: Option) { +use smtp::client::Client; +use smtp::error::SmtpResult; +use smtp::response::Response; + + +fn sendmail(source_address: String, recipient_addresses: Vec, message: String, + server: String, port: Option, my_hostname: Option) -> SmtpResult { let mut email_client: Client = Client::new( server, port, my_hostname ); - let result = email_client.send_mail::( + email_client.send_mail::( source_address, recipient_addresses, message - ); - panic!(result) + ) } fn print_usage(description: String, _opts: &[OptGroup]) { @@ -108,5 +114,8 @@ fn main() { message.push_str(line.unwrap().as_slice()); } - sendmail(sender, recipients, message, server, port, my_hostname); + match sendmail(sender, recipients, message, server, port, my_hostname) { + Ok(..) => info!("Email sent successfully"), + Err(error) => error!("{}", error) + } }