From b593d943ef377f927d9196fc4c426544dc2f355e Mon Sep 17 00:00:00 2001 From: Matt McCoy Date: Wed, 29 Jun 2016 18:53:23 -0400 Subject: [PATCH] Updating README.md and the basic example --- README.md | 75 ++++++++++++++++++----------------------------- examples/basic.rs | 2 ++ 2 files changed, 31 insertions(+), 46 deletions(-) diff --git a/README.md b/README.md index aeab44f..168b306 100644 --- a/README.md +++ b/README.md @@ -2,70 +2,53 @@ rust-imap ================ IMAP Client for Rust -This client has SSL support. SSL is configured using an SSLContext that is passed into the connect method of a IMAPStream. If no SSL -support is wanted just pass in None. The library rust-openssl is used to support SSL for this project. - - [![Build Status](https://travis-ci.org/mattnenterprise/rust-imap.svg)](https://travis-ci.org/mattnenterprise/rust-imap) [![crates.io](http://meritbadge.herokuapp.com/imap)](https://crates.io/crates/imap) [Documentation](http://mattnenterprise.github.io/rust-imap) -### Installation - -Add imap via your `Cargo.toml`: -```toml -[dependencies] -imap = "*" -``` - ### Usage +Here is a basic example of using the client. See the examples directory for more examples. ```rust extern crate imap; extern crate openssl; use openssl::ssl::{SslContext, SslMethod}; -use imap::client::IMAPStream; -use imap::client::IMAPMailbox; +use imap::client::Client; +// To connect to the gmail IMAP server with this you will need to allow unsecure apps access. +// See: https://support.google.com/accounts/answer/6010255?hl=en fn main() { - let mut imap_socket = match IMAPStream::connect("imap.gmail.com", 993, Some(SslContext::new(SslMethod::Sslv23).unwrap())) { - Ok(s) => s, - Err(e) => panic!("{}", e) - }; + let mut imap_socket = Client::secure_connect(("imap.gmail.com", 993), SslContext::new(SslMethod::Sslv23).unwrap()).unwrap(); - if let Err(e) = imap_socket.login("username", "password") { - println!("Error: {}", e) - }; + imap_socket.login("username", "password").unwrap(); - match imap_socket.capability() { - Ok(capabilities) => { - for capability in capabilities.iter() { - println!("{}", capability); - } - }, - Err(_) => println!("Error retreiving capabilities") - }; + match imap_socket.capability() { + Ok(capabilities) => { + for capability in capabilities.iter() { + println!("{}", capability); + } + }, + Err(e) => println!("Error parsing capability: {}", e) + }; - match imap_socket.select("INBOX") { - Ok(IMAPMailbox{flags, exists, recent, unseen, permanent_flags, uid_next, uid_validity}) => { - println!("flags: {}, exists: {}, recent: {}, unseen: {:?}, permanent_flags: {:?}, uid_next: {:?}, uid_validity: {:?}", flags, exists, recent, unseen, permanent_flags, uid_next, uid_validity); - }, - Err(_) => println!("Error selecting INBOX") - }; + match imap_socket.select("INBOX") { + Ok(mailbox) => { + println!("{}", mailbox); + }, + Err(e) => println!("Error selecting INBOX: {}", e) + }; - match imap_socket.fetch("2", "body[text]") { - Ok(lines) => { - for line in lines.iter() { - print!("{}", line); - } - }, - Err(_) => println!("Error Fetching email 2") - }; + match imap_socket.fetch("2", "body[text]") { + Ok(lines) => { + for line in lines.iter() { + print!("{}", line); + } + }, + Err(e) => println!("Error Fetching email 2: {}", e) + }; - if let Err(e) = imap_socket.logout() { - println!("Error: {}", e) - }; + imap_socket.logout().unwrap(); } ``` diff --git a/examples/basic.rs b/examples/basic.rs index 0f7f60f..97474b1 100644 --- a/examples/basic.rs +++ b/examples/basic.rs @@ -4,6 +4,8 @@ extern crate openssl; use openssl::ssl::{SslContext, SslMethod}; use imap::client::Client; +// To connect to the gmail IMAP server with this you will need to allow unsecure apps access. +// See: https://support.google.com/accounts/answer/6010255?hl=en fn main() { let mut imap_socket = Client::secure_connect(("imap.gmail.com", 993), SslContext::new(SslMethod::Sslv23).unwrap()).unwrap();