Prepare for newer rust imap
This commit is contained in:
parent
2ad0ec13c4
commit
b2a94bc62b
File diff suppressed because it is too large
Load Diff
|
@ -19,8 +19,8 @@ license = "MIT/Apache-2.0"
|
|||
debug=true
|
||||
|
||||
[dependencies]
|
||||
imap = "0.8.1"
|
||||
native-tls = "0.1"
|
||||
imap = { git = "https://github.com/mattnenterprise/rust-imap.git" }
|
||||
native-tls = "0.2"
|
||||
systray = "0.3.0"
|
||||
mailparse = "0.6.0"
|
||||
toml = "0.4.2"
|
||||
|
|
17
src/main.rs
17
src/main.rs
|
@ -7,7 +7,6 @@ extern crate systray;
|
|||
extern crate toml;
|
||||
extern crate xdg;
|
||||
|
||||
use imap::client::Client;
|
||||
use native_tls::{TlsConnector, TlsStream};
|
||||
use rayon::prelude::*;
|
||||
|
||||
|
@ -29,10 +28,13 @@ struct Account {
|
|||
|
||||
impl Account {
|
||||
pub fn connect(&self) -> Result<Connection<TlsStream<TcpStream>>, imap::error::Error> {
|
||||
let tls = TlsConnector::builder()?.build()?;
|
||||
Client::secure_connect((&*self.server.0, self.server.1), &self.server.0, &tls).and_then(
|
||||
|mut c| {
|
||||
try!(c.login(self.username.trim(), self.password.trim()));
|
||||
let tls = TlsConnector::builder().build()?;
|
||||
imap::client::secure_connect((&*self.server.0, self.server.1), &self.server.0, &tls)
|
||||
.and_then(|c| {
|
||||
let mut c = try!(
|
||||
c.login(self.username.trim(), self.password.trim())
|
||||
.map_err(|(e, _)| e)
|
||||
);
|
||||
let cap = try!(c.capabilities());
|
||||
if !cap.iter().any(|&c| c == "IDLE") {
|
||||
return Err(imap::error::Error::BadResponse(
|
||||
|
@ -44,14 +46,13 @@ impl Account {
|
|||
account: self.clone(),
|
||||
socket: c,
|
||||
})
|
||||
},
|
||||
)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
struct Connection<T: Read + Write> {
|
||||
account: Account,
|
||||
socket: Client<T>,
|
||||
socket: imap::client::Session<T>,
|
||||
}
|
||||
|
||||
impl<T: Read + Write + imap::client::SetReadTimeout> Connection<T> {
|
||||
|
|
Loading…
Reference in New Issue